An example :
Imagine that in dll 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;
try with
libw := LoadLibrary(StringToWideChar(Edit5.Text + 'teste.dll'));
– Marcos Regis
@Marcosregis, gave this error: E2035 Not enough current Parameters
– user7605
libw is a variable of what type ?
– Junior Moreira
@Juniors of the type "cardinal".
– user7605
@user7605, is there any reason why libw is Cardial ? Take advantage and test this: libw := Loadlibrary(Stringtoolestr(Edit1.Text + 'Project1.dll'));
– Junior Moreira
@Júniormoreira, perfect worked out rs. About the CARDIAL was searching on the internet anyway, nothing in particular pq ? Put it as an answer so I can score you.
– user7605