Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: E.P.I. en 30 Enero 2010, 13:05 PM

Título: Dll's en C++ incorporados
Publicado por: E.P.I. en 30 Enero 2010, 13:05 PM
Hola,

quería preguntar una estupidez... tengo un código en C++ y quiero hacer la GUI en VB. Creo una dll en C++, y después... ¿cómo la incorporo en VB? ¿Con LoadLibrary? Si ese es el caso, ¿me lo podrían explicar?

Muchas gracias.
Título: Re: Dll's en C++ incorporados
Publicado por: Karcrack en 30 Enero 2010, 13:43 PM
Cita de: E.P.I en 30 Enero 2010, 13:05 PM
Hola,

quería preguntar una estupidez... tengo un código en C++ y quiero hacer la GUI en VB. Creo una dll en C++, y después... ¿cómo la incorporo en VB? ¿Con LoadLibrary? Si ese es el caso, ¿me lo podrían explicar?

Muchas gracias.
No compiles la DLL con la conveccion de llamada CDECL, sino con stdcall ;)
Título: Re: Dll's en C++ incorporados
Publicado por: MCKSys Argentina en 30 Enero 2010, 23:24 PM
Hola!

La puedes incorporar como si lo hicieras con cualquier otra API. Defines la funcion/sub con Declare y listo.

Por supuesto, como dice Karcrack, al momento de compilar en C++ debes seleccionar la convención de llamadas STDCALL. Si usas CDECL (la que es por defecto) VB fallará al llamar a la función.

Saludos!
Título: Re: Dll's en C++ incorporados
Publicado por: el_c0c0 en 31 Enero 2010, 05:21 AM
Cita de: Karcrack en 30 Enero 2010, 13:43 PM
Cita de: E.P.I en 30 Enero 2010, 13:05 PM
Hola,

quería preguntar una estupidez... tengo un código en C++ y quiero hacer la GUI en VB. Creo una dll en C++, y después... ¿cómo la incorporo en VB? ¿Con LoadLibrary? Si ese es el caso, ¿me lo podrían explicar?

Muchas gracias.
No compiles la DLL con la conveccion de llamada CDECL, sino con stdcall ;)

Con CDECL y el modulo cCDECL podes usar las funciones de manera dinamica, es decir, no las declaras.. el tema es si manejas objetos, se te puede llegar a complicar. pero de todas formas, creo q con STDCALL vas a ir bien :D

y en stdcall declaras mas o menos asi:
Código (vb) [Seleccionar]
Declare Function FuncName Lib "tuDll.dll" (ByVal param1 As Long) As Long

saludos
Título: Re: Dll's en C++ incorporados
Publicado por: E.P.I. en 31 Enero 2010, 13:25 PM
Gracias a todos, me ha servido!