你用模态窗口 会堵塞消息 。。游戏肯定老掉线
一般都是挂钩子 让钩子挂在主线程上 然后再 创建非模态窗口。
看了你另个帖子 说钩子不行 有保护 想远程注入DLL挂在游戏里是吧 因为远程注入是多线程的 执行完毕 线程就停止了 所以窗体闪一下就消失了
你可以加消息循环就不会退出了 而且也不会卡
CMainDlg *pTestDlg = NULL;
BOOL CTestMFCApp::InitInstance()
{
CWinApp::InitInstance();
pTestDlg = new CTestMFCDlg;
pTestDlg->Create(IDD_MainDlg);
pTestDlg>ShowWindow(SW_SHOW);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// AfxMessageBox( "提示测试下 弹窗 卸载DLL"); //因为上边是消息死循环 只有遇到 WM_QUIT 才会消息死循环退出
if (pTestDlg)
{
delete pTestDlg;
pTestDlg= NULL;
}
return TRUE;
}
卸载DLL就有点麻烦了 我也暂时无法完美解决这问题 主动退出可以调用
::PostMessage(m_hWnd,WM_QUIT, 0, 0); 可以完美卸载DLL
但如果先关闭被注入的目标程序 那DLL没接收到WM_QUIT消息 那进程就没办法关闭 DLL会一直在。任务管理器也可以看到。
要怎么处理好这个 你自己想想了