纯资源动态链接库是只包含资源(如图标、位图、字符串和对话框)的DLL。使用纯资源DLL是设计国际化软件的好办法。
创建一个纯资源DLL
1. 在VC6中新建一个Win32 DLL(非 MFC)项目,然后点菜单Insert->Resource插入一个位图资源。
2. 保存该资源文件为res.rc并添加到此项目中,然后在菜单Project-Settings在link项中加入/NOENTRY,表示该dll没有入口函数,最后编译生成dll文件。
使用纯资源DLL
1. 新建一个Win32 Application 项目。
2. 在当前工程的resource.h文件中定义如下宏:
#define IDB_BITMAP 101 //这个数字必须和DLL资源中ID号一样,否则找不到资源
3. 加载资源DLL文件
// Load resource from DLL.
hLib = LoadLibrary("ResourceDLL.dll");
if(!hLib)
MessageBox(NULL,TEXT("Fail to Load DLL!"),TEXT("Warning"),MB_OKMB_ICONWARNING);
4. 以位图为例,从dll加载位图资源
hBitmap=LoadBitmap(hLib,MAKEINTRESOURCE(IDB_BITMAP));
5. 获得位图信息
GetObject(hBitmap,sizeof(BITMAP),&bitmap);
6. 标准的Bitmap绘图
hdcDest = CreateCompatibleDC(hdc);
SelectObject(hdcDest,hBitmap);
BitBlt(hdc,0,0,bitmap.bmWidth,bitmap.bmHeight,hdcDest,0,0,SRCCOPY);
7. 别忘了,用完资源后要释放。
FreeLibrary(hLib);