HBITMAP hBitmapNormal = NULL;
HINSTANCE hInstResource = NULL;
// Find correct resource handle
hInstResource = AfxFindResourceHandle(MAKEINTRESOURCE(nBitmapNormal), RT_BITMAP);
// Load bitmap Normal
hBitmapNormal = (HBITMAP)::LoadImage(hInstResource, MAKEINTRESOURCE(nBitmapNormal), IMAGE_BITMAP, 0, 0, 0);
以上这几句话在.exe程序中通过资源加载bmp图片是没有问题的,而为什么到了dll中取得资源句柄就是0了呢??
那是因为在dll中获取资源句柄的方式和.exe中不同,所以导致资源加载失败
改为以下就可以了
HBITMAP hBitmapNormal = NULL;
HINSTANCE hInstResource = NULL;
// Find correct resource handle
hInstResource = _pModule->GetModuleInstance();
// Load bitmap Normal
hBitmapNormal = (HBITMAP)::LoadImage(hInstResource, MAKEINTRESOURCE(nBitmapNormal), IMAGE_BITMAP, 0, 0, 0);