方法一: 使用纯WIN32 DLL方法封装纯资源
第一步,通过VS2005建立WIN32 DLL
空工程
第二步,设置配置属性->链接器->高级->无入口点(是/NOENTRY)
设置配置属性->C/C++->代码生成->运行时库(多线程/MT)
第三步,加入图片资源并定义资源名称
第四步,生成DLL,如Skin.DLL
第五步,调用方法例子
HINSTANCE
hLibrary;
if ((hLibrary = LoadLibrary (TEXT ("skin.DLL"))) ==
NULL)
{
MessageBox ( TEXT ("Can‘t load skin.DLL."), TEXT("Error"),
0) ;
}
CBitmap *m_pBitmap = new CBitmap();
hBitmap = LoadBitmap (hLibrary,
MAKEINTRESOURCE
(IDB_BK_DIALOG_MAIN));
m_pBitmap->Attach(hBitmap);
FreeLibrary(hLibrary
);
方法二使用: MFC DLL封装
第一步,建立MFC DLL项目
第二步增加 输出函数
extern "C"
__declspec(dllexport) HBITMAP WINAPI
LoadBitmapFromResource(long
nResourceID);
HBITMAP WIANPI LoadBitmapFromResource(long
nResourceID){
return
LoadBitmap(theApp.m_hInstance,MAKEINTRESOURCE(nID));
}
第三步
加入资源和
第四步
生成DLL,和对应的Lib如,skin.dll和skin.lib
第五步调用,拷贝skin.dll和skin.lib到自己的工程,在工程中加入skin.lib之后
此时可使用LoadBitmapFromResource()来隐式的调用skin.dll中的输出函数了
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
===========================================================================================================================
==========================================================================================
vc 制作图片资源dll,码迷,mamicode.com