我目前正在尝试从RT_VERSION
资源类型中枚举所有资源语言。
这是我到目前为止没有运气,因为我的回调程序根本没有发射。
function TEnumResLangProc (hModule: HMODULE; lpszType, lpszName : PChar; wIDLanguage : Word; lParam : Longint) : Bool; stdcall;
begin
MessageBox(0, lpszName, '', 0); // For testing
MessageBox(0, lpszType, '', 0); // For testing
result := true;
end;
if not EnumResourceLanguages (HINSTANCE, RT_VERSION, PChar('1'), @TEnumResLangProc, 0)
then RaiseLastOSError;
我总是得到错误代码1813,但我找不到任何关于它的文档。我也不确定"索引"参数PChar('1')
我做错了什么以及如何使用所有RT_VERSION
种语言?
编辑:
需要值1031
答案 0 :(得分:3)
此错误代码为ERROR_RESOURCE_TYPE_NOT_FOUND
。这意味着指定模块中没有该类型和名称的资源。
在图像文件中找不到指定的资源类型。
请注意,错误代码已记录在案:http://msdn.microsoft.com/en-us/library/windows/desktop/ms681381.aspx
这个名字很可能是错的。您的意思是通过MakeIntResource(1)
还是'#1'
?
您的回调函数应设置返回值。编译器会警告你这个错误。你真的应该启用和注意警告。此外,类型声明不是64位兼容,但我怀疑这在这里很重要。