Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Dll De Visual C++ 6 En Visual C++ .net

Iniciado por Dingo, 03 de Septiembre de 2004, 12:05:54 PM

« anterior - próximo »

Dingo

 Vereis, estoy intentando usar una DLL de Visual C++ 6 en Visual C++ .Net, para poder ahorrarme todo el MFC y usar los Windows Forms estos nuevos, pero segun he leido en algunas Webs es incompatible.

¿Se puede escribir algun tipo de wrapper o algo asi?. (nooo)  

Sacrifai

 ¿Imcompatible? Creo que no debería serlo.

shephiroth

 Muy buenas

QUOTE (Dingo)

Vereis, estoy intentando usar una DLL de Visual C++ 6 en Visual C++ .Net.....
[/quote]

Te refieres una dll tuya utilizando el visual c++ 6.0??? O una dll propia de visual c++ 6.0???? No termin de entenderlo

QUOTE (Dingo)

para poder ahorrarme todo el MFC y usar los Windows Forms estos nuevos, pero segun he leido en algunas Webs es incompatible.
[/quote]

Es incompatible, y te explico porque. No es lo mismo los MFC que los windows form que nombras. En no se que post puse como se activaban los windows form, pero aqui te pongo el codigo para que veas que no es tan dificil el tema, ni te tienes que meter con los MFC.

Una ventana con un par de botones que al pulsarlos te saltan mensajes diferentes:


#include "stdafx.h"
#using <mscorlib.dll>
#include <tchar.h>
using namespace System;
#using <System.dll>
#using <System.Drawing.dll>
#using <System.Windows.Forms.dll>
using namespace System::Drawing;
using namespace System::Windows::Forms;
using namespace System::ComponentModel;

__gc class MiVentana:public form
{
private:
Button * boton1,*boton2;
public:
MiVentana ()
{
boton1=new Button();
boton2=new Button();
boton1->Text="Primer Boton";
boton2->Text="Segundo Boton";
boton1->Location=Point(100,100);
boton2->Location=Point(200,100);
Controls->Add(boton1);
Controls->Add(boton2);
boton1->Click+=new EventHandler(this,this->AccionBoton1);
boton2->Click+=new EventHandler(this,this->AccionBoton2);
}
~MiVentana(){}
AccionBoton1(Object *r,EventArgs * e)
{
MessageBox::Show("Presionaste el primer boton");
}
AccionBoton2(Object *r,EventArgs * e)
{
MessageBox::Show("Presionaste el segundo boton");
}
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
Application::Run(new MiVentana);
return 0;
}


El MFC es un proyecto ya preparado que trae el .net para hacer programas rapidos en la que nos interesa más el aspecto físico del programa que el trabajo interno del programa..........yo como proyecto de mi titulacion (no es universitaria xDD) tuvimos que hacer el programa de un cyber, ý utilicé las mfc para 2 cosas:

1- Preparar las ventanas (como ves arriba es todo a mano con los windows form, mientras q en mfc es arrastrar con el raton xDD Encontre el truco a sacar las posiciones del MFC para usarlas en los windows forms)
2- Para presentar el proyecto (en una noche te haces todas las ventanas del programa, aunque no funcione ningun boton ni nada xDD)


Grugnorr

 
CitarPreparar las ventanas (como ves arriba es todo a mano con los windows form, mientras q en mfc es arrastrar con el raton xDD

O_O

Yo lo flipo con esas "verdades"

Abre un proyecto Windows en C++(.NET)

Arrastra los controles al formulario

En la ventana de Properties(F4->shorcut) configura las propiedades y los eventos

Quema los libros de MFC que tengas


Ahora otro tema, que el el compilador sea VS.NET no hace que el proyecto sea .NET. C++ tiene el modo "unsafe", el clásico y el Managed(.NET). ManagedC++ permite mezclarlos.

PD: Que feo es Managed C++  (nooo)  
hat the hells!

Dingo

 El problema es que yo programe una DLL en Visual C++ 6 con varias utilidades. Ahora me gustaria saber si puedo usar esa misma DLL dentro de una aplicacion que use Windows Forms.

shephiroth

 Muy buenas

Grugnorr, me parece q me entendiste mal. En las MFC es arrastrar componentes al formulario, tu las arrastras con el raton, les pones nombre, eventos, etc....pero con windows form has de ponerlo todo a mano (esto iba dirigido a los location xDD)

Dingo, en principio si que vas a poder, siempre que no haya ninguna incompatibilidad. Prueba con el codigo que te di antes (que por cierto, no tengo el .net y no puedo mirar si esta bien, siento si salta algun error al compilar, si eso me avisas  (nooo) ) y a incluir tu libreria sin utilizarla.

Si consigues compilar sin que de ningun problema perfecto. El problema es si para esa libreria necesitas incluir las window.h. Si quieres hacer una prueba incluyelas, pero entonces deberas comentar todas las lineas q utilicen MessageBox::Show(), y hay q sustituirla por MessageBox() la cual tiene 4 datos pero no me acuerdo cuales son  (nooo)


SUERTE   ;)  

Grugnorr

 
CitarGrugnorr, me parece q me entendiste mal. En las MFC es arrastrar componentes al formulario, tu las arrastras con el raton, les pones nombre, eventos, etc....pero con windows form has de ponerlo todo a mano (esto iba dirigido a los location xDD)


Que no tío. Abre un proyecto .NET y a la izquierda tienes la ToolBox con los componentes, los arrastras al formulario y en la ventana de Properties los configuras. Exactamente con todo lo que haces en MFC y muchas capacidades más ;)

Dingo, puedes. Link

hat the hells!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.