C/Visual C - Hacer una dll

 
Vista:

Hacer una dll

Publicado por Alberto (15 intervenciones) el 28/08/2002 05:43:02
estoy haciendo una dll en C++ builder, la compilo todo OK, pero cuando la llamo desde VB, me da un error diciendo que no se encuentra el punto de entrada, (o algo asi), para la función que pido.
Alquien me puede decir si hay algo especial que tener en cuenta para hacer una dll, o como puedo solucionar este problema.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Hacer una dll

Publicado por Anonimo (8 intervenciones) el 29/08/2002 19:49:10
Depende de la convencion de llamada que hayas usado para
los prototipos de las funciones el nombre externo cambia, se
le añade prefijos de subrayado, sufijos de arrobas e información
sobre la longitud de los argumentos, etc. El nombre de la
función exportación lo puedes ver con algún programa visor de dependencias.

Yo utilizo MS-Visual C++ y en la DLL si tengo una funcion que
se llama "mifuncion", que devuelve un entero largo y toma
como argumento dos enteros largos, el prototipo es este:

extern "C" __declspec(dllexport) long mifuncion(long a, long b);

Y entonces podré llamarla por su nombre "mifuncion" desde
otro programa en C++ o desde Visual Basic. El modificador
"__declspec(dllexport)" indica que es una función exportada,
en Borland C++ tiene que haber un modificador parecido o
equivalente para declarar funciones exportadas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Hacer una dll

Publicado por alberto (15 intervenciones) el 30/08/2002 00:33:10
En builder la sintaxis es igual, es más lo he probado con una función sencilla que solo recibe un valor, y lo regresa, muy parecido al ejemplo que vos me das. Es mas implemento una función que es la siguiente:
int WINAPI DllMain, o EntryPointDll, (o algo así), que supuestamente es la función general, a la que se llamaría cuando se carga una DLL, es más pude comprobar que esa función es llamada y ejecutada desde VB cuando hago la llamada a la DLL, pero igual me da error.
Si podes te agradecería que me enviaras un ejemplo (que funcione) que tengas hecho, que sea sencillo, así lo pruebo, y veo si es el compilador o alguna maña de VB, lo que hace que el programa falle.

Gracias por tu tiempo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar