第一步:创建资源文件
1、右击工程的.rc 文件点查看代码
2、在合适位置添加如下示例代码
/
//
// PNG
//
IDB_PNG_PAY PNG "res\\winPay.png"
3、修改图片id 在资源文件对应的id属性里面设置合适值
二、在dllmain.cpp 中获取进程的真实 hInstance 并通过全局变量保存(非常重要只有获取到真实的句柄才能获取到资源)
在 Windows 系统中,hInstance 是一个指向当前应用程序实例的句柄。它是在 Main 函数中作为参数传递的
HINSTANCE Global::hInstanceDll=NULL;
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
// 保存模块句柄
Global::hInstanceDll = hModule;
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
三、在dll工程对应的函数中查找使用资源文件
HRSRC hRsrc = ::FindResource(Global::hInstanceDll, MAKEINTRESOURCE(IDB_PNG_PAY), L"PNG");
//ATLASSERT(hRsrc != NULL);
if (hRsrc == NULL) {
spdlog::info("【未找到位图资源】");
}