unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
type //DLL的动态调用
TMyFunction = Function ( X , Y : integer ) : integer ; stdcall ;
procedure TForm2.btn1Click(Sender: TObject);
var
handle: THandle;
point: Pointer;
Myfunc: TMyFunction;
begin
handle := LoadLibrary('Project1.dll');
try //第一步:加载DLL库
if handle > 0 then
begin
point := GetProcAddress(handle,'MyMax'); //第二步:获取函数指针
if point <> nil then
begin
Myfunc := TMyFunction(point); //第三步:转化类型并调用
ShowMessage(IntToStr(Myfunc(30, 50)));
end;
end;
finally
FreeLibrary(handle); //第四步:释放DLL库
end;
end;
end.