• 923阅读
  • 1回复

VS2010注入热血江湖出错解决 [复制链接]

上一主题 下一主题
离线啊冲
 

只看楼主 倒序阅读 使用道具 楼主  发表于: 2016-07-09
MFC_DLLApp theApp;
CMainDialogWnd *PMainDialog;
DWORD WINAPI ShowDialog(LPARAM lpData)
{
    //添加显示窗口的代码
    PMainDialog =new CMainDialogWnd;
    PMainDialog->DoModal();//阻塞的方式
    //关闭此窗口后
    delete PMainDialog;//释放new分配的空间
    FreeLibraryAndExitThread(theApp.m_hInstance,1);//释放mfc_dll.dll //FreeLibrary (GetModuleHandle("mfc_dll.dll")

    return TRUE;
}

// CMFC_DLLApp 初始化

BOOL CMFC_DLLApp::InitInstance()
{
    CWinApp::InitInstance();
    ::CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)ShowDialog,NULL,NULL,NULL);
    return TRUE;
}

按照郁金香老师写的代码,经过替换 cvtres.exe后注入DLL仍然出错,然后按照老师指点在函数中加入


AFX_MANAGE_STATE(AfxGetStaticModuleState());



终于注入成功 ,这句话的意思是
缺省情况下MFC使用主应用程序的资源句柄来载入资源模板,而DLL中的资源模板是存在于DLL模板中,因此要使用这一语句切换到由AfxGetStaticModuleState返回的正确的模块状态,得到正确的句柄。
善者 慈悲心常在 无怨无恨 以苦为乐
默认压缩密码www.hifyl.com
文件分享密码问题:http://www.hifyl.com/read-htm-tid-4444.html
离线lsswin1314

只看该作者 沙发  发表于: 07-19
看看11111111111111
快速回复
限100 字节
如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
上一个 下一个