最近在学习郁金香老师的vc游戏外挂编程, 学到2.3.3(在动态链接库中创建窗口)这里卡壳了, 我关闭外挂程序的时候程序, 包括游戏客户端, 直接弹出错误窗口, 然后挂掉.报的错误是wincore.cpp中的969行assert宏出问题, 代码如下:
BOOL CWnd::DestroyWindow()
{
if (m_hWnd == NULL)
return FALSE;
CHandleMap* pMap = afxMapHWND();
ASSERT(pMap != NULL); //969行
......
网络上对于这个错误的解释是: "起因是在消息映射还没有激活的时候就关闭或是析构窗口"
按照郁金香老师的视频教程, 我重载了cwinapp的ExitInstance, 然后将资源在这里也销毁了, 并且设置为了null, 代码如下:
int CCheaterApp::ExitInstance()
{
//AFX_MANAGE_STATE(AfxGetStaticModuleState());
// TODO: Add your specialized code here and/or call the base class
if (NULL != pAssistDlg)
{
delete pAssistDlg;
pAssistDlg = NULL;
}
return CWinApp::ExitInstance();
}
但是我发现这么做, 第一次启动外挂, 然后关闭可以, 但是第二次的时候还是会连游戏客户端一起挂掉.
我百思不得其解了, 万般无奈之下, 求助于看雪的各位热心网友, 还望大家多多帮助, 小弟感激涕零.
如果各位感觉我上面讲的不是很清楚, 我可以上传我的源码.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课