FindResource函数错误代码:1813-找不到映像文件中指定的资源类型 与LoadResource函数错误代码:1812-指定的映像文件不包含资源区域

时间:2022-03-07 10:03:38

函数原型:

HRSRC WINAPI FindResource(
_In_opt_ HMODULE hModule,
_In_ LPCTSTR lpName,
_In_ LPCTSTR lpType
);


关于第一个参数hModule:如果为null,那么该函数就会在当前进程中寻找资源。如果在DLL情况下,该函数不可以为null,要明确待寻找资源的模块位置,要在dll项目的main里来这句:

HModule handle = GetModuleHandle("本dll文件名");将该句柄保存作为findresource的参数,则FindResource就不会返回上述错误代码了。

同样,

HGLOBAL WINAPI LoadResource(
_In_opt_ HMODULE hModule,
_In_ HRSRC hResInfo
);

LoadResource函数也要给第一个参数指定的模块句柄,以保证资源的正确加载。

在这两个函数使用过程中要注意模块句柄的问题。即使发生错误后,也可以用getLastError()把错误代码打印出来,以确定是哪种类型的错误。