library Project1;uses
SysUtils,
Classes;{$R *.res}function two(i:integer):integer;stdcall;
begin
result:=i*2;
end;function four(i:integer):integer;stdcall;
begin
result:=i*4;
end;exports two,four;
end.unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}function two(i:integer):integer;stdcall;external 'Project1.dll';
function four(i:integer):integer;stdcall;external 'Project1.dll';procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
edit2.Text :='four';
i:=two(strtoint(edit1.Text ));
edit3.Text :=inttostr(i);
end;procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
edit2.Text :='four';
i :=four(strtoint(edit1.Text));
edit3.Text:=inttostr(i);
end;end.unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
fun=function(i:integer):integer;stdcall;//声明一个函数类型
var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
hint:thandle;
fpointer:tfarproc;
myfun:fun;//声明一个函数类型的变量
begin
hint:=loadlibrary('Project1.dll');//装入DLL
if hint>0 then
begin
try
fpointer:=getprocaddress(hint,pchar(edit2.Text));//在DLL查找函数名 if fpointer<>nil then//找到函数名
begin
myfun:=fun(fpointer);//实例化此变量
edit3.Text :=inttostr(myfun(strtoint(edit1.Text)));//调用函数
end
else
messagebox(application.Handle ,'找不到相应函数','提示',MB_OK+MB_ICONINFORMATION);
finally
freelibrary(hint);
end;
end
else
messagebox(application.Handle,'dll没有找到,请检查','提示',MB_OK+MB_ICONINFORMATION);
end;procedure TForm1.Button2Click(Sender: TObject);
var
hint:thandle;
fpointer:tfarproc;
myfun:fun;//声明一个函数类型的变量
begin
hint:=loadlibrary('Project1.dll');//装入DLL
if hint>0 then
begin
try
fpointer:=getprocaddress(hint,'four');//在DLL查找函数名 if fpointer<>nil then//找到函数名
begin
myfun:=fun(fpointer);//实例化此变量
edit3.Text :=inttostr(myfun(strtoint(edit1.Text)));//调用函数
end
else
messagebox(application.Handle ,'找不到相应函数','提示',MB_OK+MB_ICONINFORMATION);
finally
freelibrary(hint);
end;
end
else
messagebox(application.Handle,'dll没有找到,请检查','提示',MB_OK+MB_ICONINFORMATION);
end;end.
SysUtils,
Classes;{$R *.res}function two(i:integer):integer;stdcall;
begin
result:=i*2;
end;function four(i:integer):integer;stdcall;
begin
result:=i*4;
end;exports two,four;
end.unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}function two(i:integer):integer;stdcall;external 'Project1.dll';
function four(i:integer):integer;stdcall;external 'Project1.dll';procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
edit2.Text :='four';
i:=two(strtoint(edit1.Text ));
edit3.Text :=inttostr(i);
end;procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
edit2.Text :='four';
i :=four(strtoint(edit1.Text));
edit3.Text:=inttostr(i);
end;end.unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type
fun=function(i:integer):integer;stdcall;//声明一个函数类型
var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
hint:thandle;
fpointer:tfarproc;
myfun:fun;//声明一个函数类型的变量
begin
hint:=loadlibrary('Project1.dll');//装入DLL
if hint>0 then
begin
try
fpointer:=getprocaddress(hint,pchar(edit2.Text));//在DLL查找函数名 if fpointer<>nil then//找到函数名
begin
myfun:=fun(fpointer);//实例化此变量
edit3.Text :=inttostr(myfun(strtoint(edit1.Text)));//调用函数
end
else
messagebox(application.Handle ,'找不到相应函数','提示',MB_OK+MB_ICONINFORMATION);
finally
freelibrary(hint);
end;
end
else
messagebox(application.Handle,'dll没有找到,请检查','提示',MB_OK+MB_ICONINFORMATION);
end;procedure TForm1.Button2Click(Sender: TObject);
var
hint:thandle;
fpointer:tfarproc;
myfun:fun;//声明一个函数类型的变量
begin
hint:=loadlibrary('Project1.dll');//装入DLL
if hint>0 then
begin
try
fpointer:=getprocaddress(hint,'four');//在DLL查找函数名 if fpointer<>nil then//找到函数名
begin
myfun:=fun(fpointer);//实例化此变量
edit3.Text :=inttostr(myfun(strtoint(edit1.Text)));//调用函数
end
else
messagebox(application.Handle ,'找不到相应函数','提示',MB_OK+MB_ICONINFORMATION);
finally
freelibrary(hint);
end;
end
else
messagebox(application.Handle,'dll没有找到,请检查','提示',MB_OK+MB_ICONINFORMATION);
end;end.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货