我在 MyClass 中有这个静态回调函数,我尝试从中调用另一个静态函数。但是有一个问题,Register() 采用的参数之一是非静态类变量。
我想过使用“this”关键字来解决这个问题,但似乎我无法做到(“this”:只能在非静态成员函数中引用)。这是我的代码:
class MyClass
{
...
static LRESULT CALLBACK klHkProc(int nCode, WPARAM wParam, LPARAM lParam);
static BOOL Register(DWORD vKey,KEYBLOCK* ptrKEYBLOCK);
KEYBLOCK *kb;
...
}
LRESULT CALLBACK MyClass::klHkProc(int nCode, WPARAM wParam, LPARAM lParam)
{
PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) (lParam);
if (wParam == WM_KEYDOWN)
{
MyClass::Register(p->vkCode,this->kb);
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
有什么建议么?