有关windows Api 中的callback问题 (50分)

  • 主题发起人 主题发起人 Dk108
  • 开始时间 开始时间
D

Dk108

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,HInstance,0);时使用了CallBack Fiunction:
function KeyBoardProc(iCode: Integer; wParam: WPARAM ; lParam: LPARAM):LRESULT; stdcall; export;
正常,但是在使用EnumChildWindows(hwnd,EnumChildProc,lparam)时使用CallBack函数:
function EnumChildProc(hwnd,lparam):Boolean;StdCall;时编译,出错:not enough actual parameters
请问为什么前面的callback函数不用带参数,而后面的要,而且在VC++就没有要求要参数;小弟刚接触callback
函数的调用,还请大家给点详细的说明,谢谢
 
帮忙呀!
 
传递Callback函数作为参数时用@取其地址:
EnumChildWindows(hWnd, @EnumChildProc, lParam)
否则,编译器会认为你在调用该函数,当然是实参不足了.
 
to lld

没错,但是为什么SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,HInstance,0)不用呢?
 
过程参数带默认值,可不用参数
CallBack函数是否带参数和参数多少,要有调用着决定,穿进去的只是函数地址
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部