在BC里,使用CALLBACK类型的函数,为什么不能使用FORM里的组件呢?而且出错!
我的函数是这样的:
LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
PKBDLLHOOKSTRUCT pKBHook = (PKBDLLHOOKSTRUCT)lParam;
if(pKBHook-> vkCode==VK_NUMPAD1)
{
Timer1-> Enabled = false;
Timer2-> Enabled = false;
ClearZero();
Timer3-> Enabled = true;
}
return CallNextHookEx(hKeyHook, nCode, wParam, lParam);
}
Timer1,Timer2,Timer3是在FORM上的组件,ClearZero是一个普通的函数。
编译的时候提示出错是:[C++ Error] Unit1.cpp(52): E2268 Call to undefined function 'ClearZero '
[C++ Error] Unit1.cpp(50): E2451 Undefined symbol 'Timer1 '
[C++ Error] Unit1.cpp(51): E2451 Undefined symbol 'Timer2 '
[C++ Error] Unit1.cpp(53): E2451 Undefined symbol 'Timer3 '
包括在.h文件里定义的全局 变量和函数都不行,有出错,这是什么原因?该如何改就可以访问了?
[解决办法]
Form1-> Timer1-> Enabled = true;
Form1-> Timer2-> Enabled = true;
Form1-> Timer3-> Enabled = true;
你的 callback 并没有在类内,所有要有一个指定来源的描述