Dll's en C++ incorporados

Iniciado por E.P.I., 30 Enero 2010, 13:05 PM

0 Miembros y 1 Visitante están viendo este tema.

E.P.I.

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.
La verdad nos hará libres

Karcrack

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 ;)

MCKSys Argentina

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!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


el_c0c0

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
'-     coco
"Te voy a romper el orto"- Las hemorroides

E.P.I.

Gracias a todos, me ha servido!
La verdad nos hará libres