在很多实际场合我们要用到一些图片和图标的资源,我们可以将这些资源以DLL的形式加载运用,不用的时候再释放掉。举个实例:创建一个带BMP位图资源和一个图标资源的资源DLL,然后在一个测试对话框中调用它。
(1)创建DLL
在VS中新建一个WIN32 Project,名为ResDll,类型为DLL。创建完毕后,在Resources files点击右键添加Resource,点击新建,类型为BMP,即可新建一个有内容的位图资源文件,名为IDB_RESBMP;同样,可以再新建一个ICON,文件名为IDI_RESICON。
编译该工程,即生成一个名为ResDll.dll的文件,以供测试程序调用。
(2)创建测试调用程序
在VS中创建一个MFC对话框,上面添加四个按钮,内容分别是:加载DLL,释放DLL,显式图片,显式图标。还要给该对话框类添加一个私有实例(右键点击类名,添加变量),用作动态链接库的标识,HINSTANCE m_hDll。还有将上述两个资源的宏定义ID号在测试工程中同样定义,然后分别给这些按钮添加对应消息函数。
A,加载DLL
void CResTestDlg::OnBnClickedButton1()
{
m_hDll = LoadLibrary(_T("ResDll.dll"));
if(m_hDll == NULL)
{
AfxMessageBox(_T("LoadLibrary failed"));
}
}
B,释放DLL
void CResTestDlg::OnBnClickedButton2()
{
if(m_hDll != NULL)
{
FreeLibrary(m_hDll);
}
}
C,显式位图
D,显式图标
(3)实验
把生成的DLL文件放到最终生成EXE目录的同一层,运行