mfc dll 加载图片资源
在mfc程序中,我要用到很多BMP图片,我想把这些图片单独封装到一个dll中,然后在主程序中调用这个dll里面的图片资源。可以吗?如何做,有示例吗?...
在mfc程序中,我要用到很多BMP图片,
我想把这些图片单独封装到一个dll中,
然后在主程序中调用这个dll里面的图片资源。
可以吗?如何做,有示例吗? 展开
我想把这些图片单独封装到一个dll中,
然后在主程序中调用这个dll里面的图片资源。
可以吗?如何做,有示例吗? 展开
展开全部
可以。
和将资源放入EXE的方法基本一致。
CBitmap不是有一个LoadBitmap吗,现在你可能需要用API来实现(至少我不知道MFC里怎么操作……)
首先在程序初始化的时候加载DLL,用LoadLibrary即可。它会返回一个HMODULE,你可以保存下来
CBitmap bmp;
如果之前有保存那个HMODULE,现在就
bmp.Attach( ::LoadBitmap(hResDll, IDB_BITMAP1) );
否则
bmp.Attach( ::LoadBitmap(::GetModuleHandle(TEXT("mybmpdll.dll")), IDB_BITMAP1) );
IDB_BITMAP1是资源在DLL中的编号
和将资源放入EXE的方法基本一致。
CBitmap不是有一个LoadBitmap吗,现在你可能需要用API来实现(至少我不知道MFC里怎么操作……)
首先在程序初始化的时候加载DLL,用LoadLibrary即可。它会返回一个HMODULE,你可以保存下来
CBitmap bmp;
如果之前有保存那个HMODULE,现在就
bmp.Attach( ::LoadBitmap(hResDll, IDB_BITMAP1) );
否则
bmp.Attach( ::LoadBitmap(::GetModuleHandle(TEXT("mybmpdll.dll")), IDB_BITMAP1) );
IDB_BITMAP1是资源在DLL中的编号
更多追问追答
追问
提示IDB_BITMAP1未声明的标识符
这个怎么解决???
追答
这是你添加到DLL中的资源的编号。
定义自然是在头文件的resource.h中……
哦对了先提个醒如果同一个代码文件内同时包含了exe的resource.h和dll的resource.h,因为这两个.h文件中可能会出现相同的标识符,这种情况会导致无法编译。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询