-
-
未解决
在dll中调用SetWindowLongPtr(hWnd, GWL_WNDPROC, (LONG)WndProc1);程序崩溃
2.00雪花
-
发表于:
2018-1-26 17:49
3637
-
未解决 在dll中调用SetWindowLongPtr(hWnd, GWL_WNDPROC, (LONG)WndProc1);程序崩溃
2.00雪花
我想在dll里修改窗口过程 程序直接崩溃了 在exe主程序里修改就没有任何问题
下面是dll代码片段
typedef LRESULT (CALLBACK* WND)(HWND, UINT, WPARAM, LPARAM);
WND hWndOld;
LRESULT CALLBACK WndProc1(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
return hWndOld(hWnd, message, wParam, lParam);
}
DWORD WINAPI ThreadProc(LPVOID lParam)
{
HWND hWnd = NULL;
Sleep(2000);
for (; (hWnd = FindWindow(TEXT("LOVE"), 0)) == 0;);
hWndOld = (WND)GetWindowLongPtr(hWnd, GWL_WNDPROC);
SetWindowLongPtr(hWnd, GWL_WNDPROC, (LONG)WndProc1);
return 0;
}
dll的入口代码直接CreateThread调用ThreadProc,新的窗口过程WndProc1直接调用原窗口过程
可是SetWindowLongPtr这一行程序就崩溃了
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)