制作资源DLL
为什么要制作资源DLL?
由于资源文件一般都比较大,如果将其链接到可执行文件中,那么可执行文件一般都比较臃肿,所以为了使可执行文件显得优雅点,还是选择将资源文件制作成资源DLL。由其他文件调用。这样生成的可执行文件体积就会缩小很多。当然也可以制作资源DLL进行多语言的支持。
方法
新建一个Win32项目,选择DLL选项,并且勾选空项目选项。将所有需要添加的资源添加到该项目中。设置项目属性:将程序的入口点设置为/NOENTRY。这样就算成功了。编译即可。
调用:新建一个项目,比如单文档程序,将需要用到的资源定义在Resource.h中,并且与资源DLL中的定义是一样的。然后添加代码。在其XXXApp的InitInstance()中添加代码:
m_hInst =::LoadLibrary(_T("ResDLL.dll"));
AfxSetResourceHandle(m_hInst);
该段代码的主要任务是导入资源Dll,然后切换资源句柄。
当然退出的时候在ExitInstance中添加FreeLibrary(m_hInst);
当然别忘记将Dll文件拷贝到需要的文件夹下,或者设定项目属性,设置该项目对资源dll的依赖关系。