1.首先创建要替换资源的MFC应用程序(.exe),编译运行。
2.再创建一个win32项目,将属性中项目的配置类型改为动态库(.dll)。
3.将exe项目中用到的resource.h,存放资源文件的res文件夹和*.rc文件拷贝到dll项目的对应位置,然后将resource.h和*rc添加到dll项目中。
4. 方法一、dll项目-->属性-->链接器-->高级,将无入口点这一项设为true;
方法二、创建一个*.cpp文件,输入以下代码(好像随别写写就行了)
#include<windows.h>
extern "C"
BOOL WINAPI DllMain(HINSTANCE hInstance,DWORD dwReason,LPVOID lpVoid)
{
return TRUE;
}
5.生成纯资源的dll文件。
6.将该dll文件拷贝到exe项目中。
7.将exe项目中解决方案资源管理器中的资源文件目录下的资源文件全部删除(res文件可以删除),*rc文件也可以删除。
8.在exe项目的CXXXApp中,创建一个public变量:HINSTANCE m_hDll;
在CXXXApp::CXXXApp()中,添加如下代码:
m_hDll = NULL;
在CXXXApp::InitInstance()中,添加如下代码:
m_hDll = LoadLibrary("dll名.dll");
if(m_hDll)
{
AfxSetResourceHandle(m_hDll);
}
else
{
AfxMessageBox("资源dll文件未加载成功");
return false;
}
在CXXXApp::ExitInstance()中,添加如下代码:
if(m_hDll)
{
FreeLibrary(m_hDll);
}
9.编译运行exe项目。