NIM_Duilib_Framework icon indicating copy to clipboard operation
NIM_Duilib_Framework copied to clipboard

将界面封装进DLL中时,如果资源编译进DLL,则会加载失败

Open peilinok opened this issue 4 years ago • 2 comments

问题现象

SetIcon无法加载资源

预期结果

资源可以加载

重现步骤

新建工程-》调用SetIcon-》导出DLL-》加载DLL,显示界面-》无法加载图标

duilib 中存在多个在当前模块中查找资源句柄传NULL的情况,LoadResource FindResource LoadImage ,若为独立进程时没问题,当导出DLL时,如果传NULL,会从加载DLL的进程中查找,导致资源无法正确加载。

需要在BOOL APIENTRY DllMain( HMODULE hModule,DWORD ul_reason_for_call,LPVOID lpReserved) 中全局保留hModule

peilinok avatar Jan 12 '21 11:01 peilinok

的确,你说的这是一个问题,你提出的修复建议是在配合动态库使用时出现的,除了保存全局 hModule 以外,duilib 的核心代码你是否有更好的修复建议,可以提交 PR 帮助我们来改进这一缺陷。

nmgwddj avatar Feb 23 '21 01:02 nmgwddj

好的

peilinok avatar Feb 23 '21 14:02 peilinok