delphi 调用外部 DLL 中的函数(2. 晚绑定)


本文整理自网络,侵删。

 调用外部 DLL 中的函数(2. 晚绑定) 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
//晚绑定,也就是动态调用外部函数主要用以下三个命令:
//LoadLibrary:获取 DLL
//GetProcAddress:获取函数
//FreeLibrary:释放

//定义一个过程类型,参数要和需要的函数一致
TMB = function(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; stdcall;

TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
MB: TMB; {声明函数 MB}
inst: LongWord; {声明一个变量来记录要使用的 DLL 句柄}
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
inst := LoadLibrary('user32.dll');
if inst <> 0 then
MB := GetProcAddress(inst, 'MessageBoxW');
// MB := GetProcAddress(inst, 'MessageBoxA'); {Delphi 2009 之前的版本用这句}
end;

//调用测试:
procedure TForm1.Button1Click(Sender: TObject);
var
t,b: PChar;
begin
t := '标题';
b := '内容';
MB(0, b, t, 0);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
FreeLibrary(inst); {记得释放}
end;

end.

相关阅读 >>

Delphi 利用tmemorystream对象存取缓存

Delphi byte类型算术运算

Delphi 在tmemo中查找文本

Delphi 关于access的日期类型字段比较的一点认识

Delphi 正则表达式起步

Delphi 的tjpegimage跟image区别

Delphi fmx检测屏幕旋转

Delphi实现qq右下角弹出信息窗口

Delphi 每年、月、周、日的开始与结束的时间startofayear … startoftheyear … endofayear … endoftheyear

Delphi 解决android 9上无法使用http协议

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...