gpt4 book ai didi

c++ - FindResource 在 exe 文件上给出错误 1813

转载 作者:搜寻专家 更新时间:2023-10-31 01:11:26 48 4
gpt4 key购买 nike

过去 3 天我一直在尝试这个,但我仍然无法让它工作。 WINAPI FindResource 函数抛出错误 1813:这意味着找不到资源类型。我正在使用 eclipse,所以没有 .RC 文件或 resource.h 文件,所以我用 LoadLibraryA 加载了我的 exe 文件,然后在 FindResourceA< 中使用了 HANDLE/。这是我的代码:

HRSRC hRsrc;
HMODULE hExe;

/** Loading resource file in the program */
if (!(hExe = LoadLibraryA(TEXT(filename)))) {
printf("Cannot load resource error: %lu \n", GetLastError());
return 0;
}
printf("Resource file %s is loaded to the program \n", filename);

/** Finding resource */
if (!(hRsrc = FindResourceA(hExe, MAKEINTRESOURCE(10), "EXE"))) {
printf("Cannot find resource error: %lu \n", GetLastError());
return 0;
}
puts("Resource found");

现在,据我了解,MAKEINTRESOURCE(10) 让我们可以定义自定义资源。这是正确的还是我只是误会了?在资源类型中,我尝试给出“EXE”、“BIN”、“Exehead”和 RT_RCDATA 但没有任何效果,它仍然给我和以前一样的错误。网络上的所有解决方案都是在 Visual Studio 上使用 .RCresource.h 文件,有什么可以与 eclipse 一起使用的吗?谢谢

最佳答案

要从二进制文件加载特定资源,您需要知道资源的类型及其 ID。

如果不知道其中一个或两者,您可以使用函数 EnumResourceTypes() 和/或 EnumResourceNames() 来找出答案。

可在此处找到有关如何使用 EnumResourceTypes() 的示例:http://msdn.microsoft.com/en-us/library/windows/desktop/ms648008%28v=vs.85%29.aspx#_win32_Creating_a_Resource_List


更新:

如果 MS 提供的资源编辑器不可用,这个免费工具可能会有所帮助:http://www.resedit.net/我曾经使用它并为我的需要工作。无论如何,我不知道它现在的状态。

关于c++ - FindResource 在 exe 文件上给出错误 1813,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14909101/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com