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.
Respuesta Responder a este mensaje
#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)

¿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.



.

Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
06/09/2004 - 07:06 | Informe spam
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)



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
Respuesta Responder a este mensaje
#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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida