我刚刚设法用 c++ 编写了一个全局 CBT 挂钩,可用于 c#。这听起来可能很愚蠢,但由于我使用 c# 工作,我对指针和取消引用的了解非常糟糕。
我无法取消引用 lParam 指向的结构内的指针。
它看起来像这样:lParam 是一个指向 CBT_CREATEWND 结构的长指针,该结构又包含一个成员“lpcs”和一个指向 CREATESTRUCT 的指针。这个结构包含一个我想阅读的成员“x”。我尝试了以下方法,但我得到了 x 的无效值:
CREATESTRUCT str = *(LPCREATESTRUCT)(((LPCBT_CREATEWND)lParam)->lpcs);
int normal = str.x;
PostMessage(FindWindow(NULL, L"Process Watcher Window"), RegisterWindowMessage(L"ALEXX_SEINE_WNDMESSAGE_C"), wParam, normal);
有人可以帮我吗?