por ejemplo, una llamada completa a una dll
**** programa principal (o llamador)
Código:
unit tal;
interface
uses ....
type ....
end; //del type
Const
MyDll = 'MyDll.dll';
var
MyFunctionInDll : function ( hWnd : THandle;....): Integer stdcall;
implemantation
uses.....
procedure TMyForm.Button1Click(Sender: TObject);
var Handle: THandle;
begin
Handle := LoadLibrary(MyDll);
if Handle <> 0 then
begin
@MyFunctionInDll := GetProcAddress(Handle, 'MyFunctionInDll');
try
if @MyFunctionInDll <> nil then
begin
MyFunctionInDll ( Self.Handle, .....);
end;
finally
FreeLibrary(Handle);
end;
end; // Fin del IF del Han
end;
******* La dll
Código:
library MyDll;
uses
.....
function MyFunctionInDll ( hWnd : THandle; .....) : integer; stdcall; export;
var iValRet: Integer;
begin
Application.Handle := hWnd;
MyFormInDll := TMyFormInDll.Create(Application);
try
iValRet := MyFormInDll.ShowModal;
finally
FreeAndNil(MyFormInDll);
end;
Result := iValRet;
end;
exports MyFunctionInDll;
begin
end.
Espero que ahora lo tengas algo mas claro