【发布时间】:2011-10-09 21:23:52
【问题描述】:
我有一个简单的线程,在执行过程中,我尝试使用线程中定义的函数之一的地址调用 EnumWindows()。 所以我正在尝试这样做: EnumWindows(@cbEnumWindowsClickOK, 0);其中 cbEnumWindowsClickOK 是在线程类中定义的 EnumWindowProc,如下所示:
TAutoClickOKThread = class(TThread)
private
fExitEvent : THandle;
function cbEnumWindowsClickOK(Wnd: HWND; Info: Pointer): BOOL;
public
constructor Create(ExitEvent : Thandle);
procedure Execute(); override;
end;
当我尝试这个时,我不断收到“错误:需要变量”,暗示它不会将 @cbEnumWindowsClickOK 解释为地址。如果我将函数移动到全局范围(从线程中删除它),它确实可以工作。
有什么想法可以解决这个问题吗?
【问题讨论】:
-
+1:请考虑post。谢谢。
标签: multithreading delphi winapi pointers