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.

Preguntas similare

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



Mostrar la cita
hacerlo.
Mostrar la cita
(hUserDll,"Features");
Mostrar la cita
así que no es
Mostrar la cita
#2 Sergio
23/09/2004 - 17:54 | Informe spam
pablo crosio wrote:
Mostrar la cita
Muchas gracias, travez de intefaces com me funciona.

Una cosa, me da un error al intentar acceder a algunas funciones de la
dll, a otras no. El caso es que el desensamblador se para en una línea
que pone int 3. Sabes a que se puede deber? No es la primera vez que lo
veo, y siempre me pasa cuando intento acceder a alguna dll o algún ocx.
#3 pablo crosio
23/09/2004 - 18:31 | Informe spam
hola!

estas hablando de la DLL en VB.NET no? pues habria que ver
un poco de codigo en VC++ para ver que pasa...

salu2!!

pablo

Mostrar la cita
DLL
Mostrar la cita
DLL
Mostrar la cita
codigo
Mostrar la cita
con
Mostrar la cita
traves
Mostrar la cita
las
Mostrar la cita
us/cpguide/html/cpconexposingnetframeworkcomponentstocom.as
Mostrar la cita
funciones de la
Mostrar la cita
en una línea
Mostrar la cita
primera vez que lo
Mostrar la cita
dll o algún ocx.
Mostrar la cita
#4 Sergio
24/09/2004 - 08:18 | Informe spam
pablo crosio wrote:
Mostrar la cita
CoInitialize(NULL);
try {
ISecureSportsPtr pSecSp(__uuidof(Sec));
long ret = 0;
pSecSp->Features(&ret); //Esta llamada da error
pSecSp->CheckKey(0,&ret); //Esta llamada da error
pSecSp->ChangeSettings(L"eifajjjaosodii",&ret); //Funciona
} catch(_com_error &e) {
aux.Format("Error: %s",e.Description());
MessageBox(aux);
}

CoUninitialize();


Aunque yo creo que el problema viene por algún componente instalado en
el ordenador.
#5 pablo crosio
24/09/2004 - 19:53 | Informe spam
el problema debe ser en los parametros de llamada puesto
que me comentas que la DLL funciona directamente en .NET

Mostrar la cita
ver
Mostrar la cita
(L"eifajjjaosodii",&ret); //Funciona
Mostrar la cita
instalado en
Mostrar la cita
Ads by Google
Search Busqueda sugerida