请教一个问题!(50分)

  • 主题发起人 主题发起人 liang922
  • 开始时间 开始时间
L

liang922

Unregistered / Unconfirmed
GUEST, unregistred user!
以下的定义是什么意思??请详细解释,不胜感激!
TThunkProc = function(HWindow: HWnd
Message, WParam,LParam:Lognint):Longint stdcall;
 
dll函数在delphi中的头定义

在delphi中想调用dll函数,需要对dll的函数进行定义

大致是这个意思.但描述不太专业[:(]

TThunkProc = function(HWindow: HWnd
Message, WParam,LParam:Lognint):Longint stdcall
是对DLL中函数TThunkProc在delphi中的定义
 
stdcall的意思是规定函数的参数传递规则是从右到左,先将LParam压栈,然后依次是WParam、Message、HWindow,类似stdcall的关键字还有safecall,不同的是safecall会在函数外层加一个try...finally的外套,来保证必要的释放或触发异常
delphi函数的参数传递是从左到右的,但c语言编写的函数是从右到左的。所以在调用c语言写的dll时需要用stdcall来限定参数的传递规则。
 
TThunkProc = function(HWindow: HWnd
Message, WParam,LParam:Lognint):Longint stdcall

这是自定义一个函数类型变量:TThunkProc;
这个函数的原型或者说这个函数的的定义是:function(HWindow: HWnd
Message, WParam,LParam:Lognint):Longint stdcall

这个多用于动态调用动态库DLL中的同样功能的函数用的函数类型变量;
函数的参数中第一个是程序或窗体的ID;
后面的是接收或截取程序或系统的消息;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部