HICON GetRes(UINT nID,LPCSTR lpType/* = RT_ICON*/)
{
CString sResDllFile = "D:\\work\\Src\\Vc\\bin15\\Res.dll";
HMODULE hMoudle= ::LoadLibrary(sResDllFile );
if(hMoudle == NULL)
{
return NULL;
}
HICON hIcon = (HICON)::LoadImage(hMoudle,MAKEINTRESOURCE(nID),IMAGE_ICON,16,16,LR_DEFAULTCOLOR);FreeLibrary(hMoudle);
return hIcon;
}上面这段代码没有问题,但是要是用FindResource就返回NULLHGLOBAL LoadACSResource(UINT uId,LPCSTR lpResType /*= RT_ICON */)
{
CString sResDllFile = "D:\\work\\Src\\Vc\\bin15\\Res.dll";
HMODULE hMoudle= ::LoadLibrary(sResDllFile );
if(hMoudle == NULL)
{
return NULL;
}
HRSRC hResInfo = ::FindResource( hMoudle,MAKEINTRESOURCE(uId),lpResType);
// 这里会返回NULL
if(hResInfo == NULL)
{
return NULL;
}
HANDLE hRetRes = ::LoadResource(g_hModule, hResInfo);
::FreeLibrary(hMoudle);
return hRetRes;
}
{
CString sResDllFile = "D:\\work\\Src\\Vc\\bin15\\Res.dll";
HMODULE hMoudle= ::LoadLibrary(sResDllFile );
if(hMoudle == NULL)
{
return NULL;
}
HICON hIcon = (HICON)::LoadImage(hMoudle,MAKEINTRESOURCE(nID),IMAGE_ICON,16,16,LR_DEFAULTCOLOR);FreeLibrary(hMoudle);
return hIcon;
}上面这段代码没有问题,但是要是用FindResource就返回NULLHGLOBAL LoadACSResource(UINT uId,LPCSTR lpResType /*= RT_ICON */)
{
CString sResDllFile = "D:\\work\\Src\\Vc\\bin15\\Res.dll";
HMODULE hMoudle= ::LoadLibrary(sResDllFile );
if(hMoudle == NULL)
{
return NULL;
}
HRSRC hResInfo = ::FindResource( hMoudle,MAKEINTRESOURCE(uId),lpResType);
// 这里会返回NULL
if(hResInfo == NULL)
{
return NULL;
}
HANDLE hRetRes = ::LoadResource(g_hModule, hResInfo);
::FreeLibrary(hMoudle);
return hRetRes;
}
HRSRC hResInfo = ::FindResource( hMoudle,MAKEINTRESOURCE(uId),lpResType);
不知道这个方法用于DLL时有什么限制吗?