An example:
Imagine that in the dll it has the following function:
function Somar(a, b: Integer): Integer; stdcall;
begin
Result := a + b; // retorna a soma
end;
//fazendo a leitura de uma dll
procedure TForm1.Button1Click(Sender: TObject);
type
// vamos declarar um tipo function
TSomarFuncao = function(a, b: Integer): Integer; stdcall;
var
Somar: TSomarFuncao; // uma variável que representará a função
DLLHandle: THandle; // este é o handle para a DLL
begin
// vamos carregar a DLL
DLLHandle := LoadLibrary('ItamarMinhaDLL.dll');
try
// vamos obter o endereço da função na DLL
Somar := GetProcAddress(DLLHandle, 'Somar');
// vamos chamar a função agora
if Assigned(Somar) then
ShowMessage(IntToStr(Somar(4, 3)))
else
ShowMessage('Não foi possível chamar a rotina desejada');
finally
FreeLibrary(DLLHandle); // vamos liberar a DLL
end;
end;