我已经开发了一个动态库,在dll中我添加了一个资源文本文件和其他代码用于其他目的,然后通过可执行文件我动态加载dll,当调用转到FindResource API时它总是返回NULL . 当可执行文件位于单独的文件夹中时,动态库文件夹是独立的 . 我不明白为什么它不起作用 . code:> HRSRC hRes = FindResource(0,MAKEINTRESOURCE(IDR_XYZ_ABC1),“XYZ_ABC”); <
FindResource的第一个参数是要加载的句柄 . 所以它可能是你的动态DLL处理 .
错误代码1813转换为
在图像文件中找不到指定的资源类型 .
将 NULL 作为第一个参数传递给FindResource记录为:
NULL
如果此参数为NULL,则该函数将搜索用于创建当前进程的模块 .
如果要从映像加载资源,动态加载到进程中,则必须将模块的句柄传递给 FindResource :
FindResource
HMODULE hMod = LoadLibrary("MyResources.dll"); HRSRC hRes = FindResource(hMod, MAKEINTRESOURCE(IDR_XYZ_ABC1), "XYZ_ABC"); // ...
如果您的.dll仅包含资源,则可能需要使用LoadLibraryEx . 它允许您指定其他加载选项,允许您加载仅包含资源的库,而不包含入口点 .
2 回答
FindResource的第一个参数是要加载的句柄 . 所以它可能是你的动态DLL处理 .
错误代码1813转换为
将
NULL
作为第一个参数传递给FindResource记录为:如果要从映像加载资源,动态加载到进程中,则必须将模块的句柄传递给
FindResource
:如果您的.dll仅包含资源,则可能需要使用LoadLibraryEx . 它允许您指定其他加载选项,允许您加载仅包含资源的库,而不包含入口点 .