Iceman Asked:2020-07-16 16:42:40 +0000 UTC2020-07-16 16:42:40 +0000 UTC 2020-07-16 16:42:40 +0000 UTC 如何将指向对象的指针传递给窗口过程(回调)? 772 需要在窗口回调中使用 main 中声明的类实例: long __stdcall WindowProc(HWND, UINT, WPARAM, LPARAM); 如果 WPARAM 和 LPARAM 都已被其功能“占用”,如何将指针传递给该函数? c 1 个回答 Voted Best Answer Abyx 2020-07-16T18:25:55Z2020-07-16T18:25:55Z 1) SetWindowLongPtr+GetWindowLongPtr(hwnd, GWLP_USERDATA) SetWindowLongPtr通常在 WM_CREATE 处理程序中调用,通过CREATESTRUCT::lpCreateParams. 2)SetProp(hwnd, "unique str", (HANDLE)data)+ GetProp (数据可以有任何值,它不必是句柄;唯一标识符可以是全局原子) 3) 生成您自己的包装函数,就像在 WTL 中所做的那样。 那些。例如,对于 x86-32,分配内存并在那里写入mov ecx, this / jmp func。
1)
SetWindowLongPtr+GetWindowLongPtr(hwnd, GWLP_USERDATA)SetWindowLongPtr通常在 WM_CREATE 处理程序中调用,通过CREATESTRUCT::lpCreateParams.2)
SetProp(hwnd, "unique str", (HANDLE)data)+GetProp(数据可以有任何值,它不必是句柄;唯一标识符可以是全局原子)
3) 生成您自己的包装函数,就像在 WTL 中所做的那样。
那些。例如,对于 x86-32,分配内存并在那里写入
mov ecx, this / jmp func。