Delphi动态链接库DLL创建和使用

2025-05-24 19:36:28

1、打开Delphi7集成开发环境,File-New-Other在弹出的对话框在New页签选择DLLWizard点击OK

Delphi动态链接库DLL创建和使用
Delphi动态链接库DLL创建和使用
Delphi动态链接库DLL创建和使用

2、在生成的Project2,填写如下代码:function MyDllFunc(x:integer):integer;stdcall;begin Result := x*x;end;exports MyDllFunc ;导出函数

Delphi动态链接库DLL创建和使用

3、这样在工程文件目录就多了一个Project2.dll

Delphi动态链接库DLL创建和使用

4、调用DLL有两种方式,一静态调用,二动态调用,先演示静态调用,静态调用在程序启动时就调用。打开Delphi7集成开发环境,在默认工程的Form1窗体,放置两个Edit控件和一个Button控件,并设置Button1的Caption属性为调用。

Delphi动态链接库DLL创建和使用

5、在Unit1.pas的implementation下进行声明要调用的DLLimplementation{$R *.dfm}function MyDllFunc(x:integer):integer;stdcall;external 'Project2.dll'注意这里的Project2.dll的路径和默认工程的Project1必须在同个文件夹。

6、双击调用按钮,进入OnClick事件方法,写如下代码:procedure TForm1.Button1Click(Sender: TObje艘早祓胂ct);begin Edit2.Text := inttostr(MyDllFunc(strToint(Edit1.Text)));end;F9运行程序,在Edit1输入3,点击调用按钮,Edit2的内容变为9,DLL调用成功

Delphi动态链接库DLL创建和使用

7、下面演示动态调用,将Un坡纠课柩it1.pas文件代码,改成如下:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}type TmyDiaoYong = function (x:integer):Integer; stdcall;procedure TForm1.Button1Click(Sender: TObject);var hDll:Thandle; pFnc:TFarProc; myDiaoYong:TmyDiaoYong;begin hDll:=Loadlibrary('Project2.dll') ; pFnc := GetProcAddress(hDll,'MyDllFunc'); myDiaoYong:=TmyDiaoYong(pFnc); Edit2.Text := inttostr(myDiaoYong(strToint(Edit1.Text))); FreeLibrary(hDLL);end;end.解释一下:这里边主要定义了一个类型 TmyDiaoYong = function (x:integer):Integer; stdcall;这个类型参数和返回值必须和要调用的DLL中的函数一致。调用过程分成三步,一加载DLL文件,二取得DLL文件函数地址,三实例化本地函数调用函数

8、F9运行程序,在Edit1输入4,点击调用按钮,Edit2的内容变为16,DLL动态调用成功

Delphi动态链接库DLL创建和使用
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢