Hola..
tengo un problema con una dll delphi
cargandola en una aplicacion vcl form en borland c++ builder 6
el problema es que no se que hago mal si es la declaracion de la funcion en c++
o como la mando a llamar
Esta dll delphi tiene funciones que devuelven una cadena de texto que son directorios
para las pruebas siempre responde 'lalala';
me da errores de acceso con direcciones 00F83F1A read of addres 5572693c
este es la dll
Código Delphi
[-]
library directorios;
uses
SysUtils,
Classes;
{$R *.res}
function Directorio(dir: string): string; stdcall;
begin
Result := 'lalalala';
end;
exports
Directorio;
begin
end.
y este el codigo c con el que la cargo. se supone que el resultado de llamar a esa funcion debe de
ir a un edit.
Código PHP:
typedef char* __stdcall ( * tdirectorio ) ( char *dir ); // tipeado de la funcion delphi
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HINSTANCE hDll;
tdirectorio Directorio;
hDll = LoadLibrary("directorios.dll"); // carga la dll
if(hDll)
{ Directorio = (tdirectorio)GetProcAddress(hDll, "Directorio"); //obtiene el puntero
Edit1->Text = (AnsiString) Directorio("DirUserDocs");
}
else
{
ShowMessage("no se cargo la dll") ;
}
FreeLibrary(hDll);
}
//---------------------------------------------------------------------------
una ayuda.
gracias.