Ver Mensaje Individual
  #4  
Antiguo 04-02-2004
Rafa Rafa is offline
Miembro
 
Registrado: oct 2003
Posts: 30
Reputación: 0
Rafa Va por buen camino
codigo

Aqui va el codigo de como llamo a mi dll

Cita:
procedure TForm1.FormCreate(Sender: TObject);
var
h:THandle;
setAdo:function (cCia: pchar;hwd:Integer):integer;stdcall;
Cia: pchar;
begin
h:=LoadLibrary('prueba.dll');
if h = 0 then
begin
showmessage('no se encontro prueba.dll');
exit;
end;
@setAdo:=GetProcAddress(h,'SetAdo');
if @setAdo=nil then
begin
showmessage('no se encontro SetAdo');
exit;
end;
getmem(Cia,3);
strlcopy(Cia,pchar('COI'),3);
setAdo(Cia,self.Handle);
FreeLibrary(h);
Application.Terminate;
end;
y este es el codigo de la dll

Cita:
library prueba;
uses
SysUtils,
Classes,
Forms,
Dialogs,
ShellApi,
Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}
function SetAdo(Cia: pchar;hwd:Integer):integer;stdcall;
begin
Application.handle:=hwd;
try
Form1:=TForm1.Create(Application);
Form1.cCia:=Cia;
Showmessage(Form1.ADOStoredProc1.ConnectionString);
except
on E: Exception do
begin
ShowMessage('Error Creant Formulari. ' + E.Message);
result:=0;
raise;
exit;
end;
end;
result:=1;
end;

exports SetAdo;
begin

end.
Responder Con Cita