C/Visual C - Importar dll en c++ builder 5.0

 
Vista:

Importar dll en c++ builder 5.0

Publicado por Javipip (1 intervención) el 19/06/2002 11:03:41
Hola a todos, tengo una dll ya creada y me gustaría importarla para llamar a una función que tiene. A continuación os detallo el código fuente, se que me falta el LoadLibrary, FreeLibrary.... pero no se como aplicarlos, estoy programado con c++ builder 5.0, muchas gracias y un saludo.

#include.....
.
.
.
TFormPrincipal *FormPrincipal;

//--------------- IMPORTAR DLL PARA TRABAJAR CON EL ACTIVESYNC --------------
extern "C" __declspec(dllimport) void DESKTOPTODEVICE(char DesktopLocn[100], char TableList[1000],
bool Sync, int Overwrite, char DeviceLocn[100]);
//---------------------------------------------------------------------------

void __fastcall TFormPrincipal::FrameComunicacionesButtonEnviarClick(
TObject *Sender)
{
DESKTOPTODEVICE("c:\proyectos\Hospital Son Dureta\sondureta2000.mdb","Codgeo..Maegfh..",
true,true,"");
}

Al compilar me da el siguiente error:

[Linker Error] Unresolved external '_DESKTOPTODEVICE' referenced from C:\PROYECTOS\HOSPITAL SON DURETA\UNIT1.OBJ
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:Importar dll en c++ builder 5.0

Publicado por ernesto (1 intervención) el 27/06/2002 03:09:28
Todas las DLL's tienen las funciones encapsuladas, sin embargo el compilador al generarlas no siempre respeta ( por no decir que nunca) el nombre original del programador. Por ejemploi Fx(void) tiene una entrada como FX@0 que es el nombre con el que la conoce el enlazador. Ese nombre modificado recibe el nombre de nombre decorado y depende tanto del compilador como del lenguaje. La misma funcion compilada con un compilador que acepte C++ recibe un nombre diferente.

Si al crear la DLL no se especifico el nombre decorado, o cambia el compilador, entonces no hay de otra que usar el nombre interno en la DLL. Para obtenerlo los fabricantes proporcionan utilerias que dan un vaciado de los nombres. Borland suele proporcionar Hexdump, Microsoft usa BinDump. Su sintaxis es

c:>hexdump nombre.dll > archivoresultados.txt

El resultado se vacia en el el txt y alli se puede explorar.
Suerte
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