DLL de C++ desde VB

06/09/2004 - 01:55 por Jair | Informe spam
Buenas noches.

Tengo una DLL hecha en C++ (concretamente, compilada con
Borland 5.02) que quiero utilizar desde una aplicacion
hecha en VB6. (Aun no me metí con .Net)

En la compilación incluí un archivo ctlProto.def que
detalla las dos funciones que tienen que "verse" desde VB
de esta manera:

LIBRARY CTLPROTO

EXPORTS
CreateDriver
DestroyDriver

En VB declaro las dos funciones como:
Private Declare Function CreateDriver Lib "ctlproto.dll" ()
As Long
Private Declare Sub DestroyDriver Lib "ctlproto.dll" (ByVal
objptr As Long)

El archivo .DLL generado lo copié a %windir%\system32
Al ejecutar obtengo el error 453:
"No se pudo encontrar el punto de entrada de la DLL Create
Driver en ctlProto.dll"

Dentro del fuente de C++ también están definidas las
funciones como:
void * __stdcall CreateDriver() {
return new interfazMpeg;
}

Y aparte de todo esto, en la implementacion también he
definido un
BOOL APIENTRY DllMain( HANDLE /*hModule*/,
etc, etc.

¿Algún alma caritativa tendría la amabilidad de decirme qué
está fallando?

Jaír

PD: Intenté hacer un regsvr32 ctlProto.dll, pero obtengo
como respuesta que no tiene punto de entrada.

Preguntas similare

Leer las respuestas

#1 DellDor
06/09/2004 - 03:48 | Informe spam
¿Registraste la DLL?
Usa: regsrv32 miDll.dll




"Jair" escribió en el mensaje
news:680d01c493a3$c758bb90$
Buenas noches.

Tengo una DLL hecha en C++ (concretamente, compilada con
Borland 5.02) que quiero utilizar desde una aplicacion
hecha en VB6. (Aun no me metí con .Net)

En la compilación incluí un archivo ctlProto.def que
detalla las dos funciones que tienen que "verse" desde VB
de esta manera:

LIBRARY CTLPROTO

EXPORTS
CreateDriver
DestroyDriver

En VB declaro las dos funciones como:
Private Declare Function CreateDriver Lib "ctlproto.dll" ()
As Long
Private Declare Sub DestroyDriver Lib "ctlproto.dll" (ByVal
objptr As Long)

El archivo .DLL generado lo copié a %windir%\system32
Al ejecutar obtengo el error 453:
"No se pudo encontrar el punto de entrada de la DLL Create
Driver en ctlProto.dll"

Dentro del fuente de C++ también están definidas las
funciones como:
void * __stdcall CreateDriver() {
return new interfazMpeg;
}

Y aparte de todo esto, en la implementacion también he
definido un
BOOL APIENTRY DllMain( HANDLE /*hModule*/,
etc, etc.

¿Algún alma caritativa tendría la amabilidad de decirme qué
está fallando?

Jaír

PD: Intenté hacer un regsvr32 ctlProto.dll, pero obtengo
como respuesta que no tiene punto de entrada.
#2 Anonimo
06/09/2004 - 04:19 | Informe spam
Sí, probé.
Pero obtengo el mensaje:
"Se descargó c:\windows\system32\ctlProto.dll, pero no se
encontró el punto de entrada DllRegisterServer

No se pudo registrar este archivo."

Otra idea?

(Muchas gracias por responder)

Mostrar la cita
#3 Eduardo A. Morcillo [MS MVP VB]
06/09/2004 - 07:06 | Informe spam
Mostrar la cita
Entonces, ¿por que estas preguntando en un grupo de .net? Mejor pregunta en
el grupo de VB6: microsoft.public.es.vb

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
#4 Félix
07/09/2004 - 03:14 | Informe spam
Intenta con agregar la referencia al proyecto, en la vista
de explorador de soluciones puedes hacerlo, no necesitas
registralo debido a que dot net crea un 'wrapper' que
encierra tu dll y la hace accesible para el proyecto,
despues usa Imports MydllName.

Espero te ayude.
Félix Guerrero
Mérida - Venezuela
Ads by Google
Search Busqueda sugerida