MyClass にこの静的コールバック関数があり、そこから別の静的関数を呼び出そうとします。ただし、Register() が取る引数の 1 つが非静的クラス変数であるという問題があります。
この問題を克服するために「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);
}
助言がありますか?