Cargar una dll hecha en VB .net en VC++

23/09/2004 - 10:34 por Sergio | Informe spam
Se puede hacer? Me imagino que si, pero no consiguo hacerlo.

Después de los includes:

...
HMODULE hUserDll;
typedef int(CALLBACK* comprobar) ();
comprobar comprueba = NULL;
...


En el OnIntialUpdate:

...
hUserDll = ::LoadLibrary(_T("SecureSports.dll"));
comprueba = (comprobar)GetProcAddress(hUserDll,"Features");
if (comprueba) {
CString aux;
aux.Format("%d",comprueba());
MessageBox(aux);
}
...


GetProcAddress me devuelve NULL.
El caso es que esta dll usandola desde vb .net funciona, así que no es
que la dll esté mal.
 

Leer las respuestas

#1 pablo crosio
23/09/2004 - 15:42 | Informe spam
hola!

el tema es que con la forma que queres hacerlo
(GetProcAdress), la funcion debe estar exportada en la DLL
y hasta donde se eso no es posible de realizar con las DLL
de VB.NET

por otro lado y muy importante, VB.NET trabaja con codigo
administrado mientras que vos estas queriendo llamarlo
desde codigo no adminitrado (supongo que no trabajas con
VC++.NET); la forma para comunicarse desde VC es a traves
de COM.

fijate en este link que explica como interactuar entre las
distintas plataformas

http://www.msdn.microsoft.com/library/en-
us/cpguide/html/cpconexposingnetframeworkcomponentstocom.as
p

salu2!!

pablo



Se puede hacer? Me imagino que si, pero no consiguo


hacerlo.

Después de los includes:


HMODULE hUserDll;
typedef int(CALLBACK* comprobar) ();
comprobar comprueba = NULL;



En el OnIntialUpdate:


hUserDll = ::LoadLibrary(_T("SecureSports.dll"));
comprueba = (comprobar)GetProcAddress


(hUserDll,"Features");
if (comprueba) {
CString aux;
aux.Format("%d",comprueba());
MessageBox(aux);
}



GetProcAddress me devuelve NULL.
El caso es que esta dll usandola desde vb .net funciona,


así que no es
que la dll esté mal.
.

Preguntas similares