Ver Mensaje Individual
  #1  
Antiguo 26-09-2013
JXJ JXJ is offline
Miembro
 
Registrado: abr 2005
Posts: 2.475
Reputación: 22
JXJ Va por buen camino
Question ¿como usar dll delphi 7 en c++ builder 6?

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}
// el parametro dir: string
// es para saber si se quiere el directorio de documentos, o el roaming o allgun otro.
// para las pruebas solo devuelve 'lalalal'
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 =  (AnsiStringDirectorio("DirUserDocs");
      }
      else
      {
        
ShowMessage("no se cargo la dll") ;
      }
   
FreeLibrary(hDll);
}
//--------------------------------------------------------------------------- 
una ayuda.


gracias.
Responder Con Cita