在现有.exe上修改资源的问题

时间:2009-09-13 05:59:58

标签: windows resources

我遇到了一个让我发疯的问题,希望有人能够对此有所了解。作为构建过程的一部分,我有一个单独的.exe来更新文件的VersionInfo。我确实在超过20多个程序中使用它,但出于某种原因,其中一个程序正在从exe中删除所有现有的资源信息。我实际上修剪了它,我只需要调用:

即可获得确切的行为
if ((ResourceHandle = BeginUpdateResource(Target, FALSE)) != NULL)
 {
 EndUpdateResource(ResourceHandle, FALSE);
}

我使用上面作为一个简单的例子,但在我的情况下,我正在检查返回代码,一切都运行正常。如果我对其他20个应用程序运行相同的代码,它们不受它的影响 - 但是在这个应用程序上运行它会删除资源数据。

我浏览了.rc文件,删除了它的块,以我能想到的方式重建它,结果是一样的。我也可以在DevStudio中加载它,并且它不会报告任何损坏等等。所有应用程序之间的构建过程完全相同(它们是通过makefile构建的,因此也没有任何魔法发生)。

有没有其他人经历过这种行为?看起来其他人遇到了here

但到目前为止我还没有找到解决方案......

1 个答案:

答案 0 :(得分:0)

作为构建过程的一部分,我以编程方式编辑版本号的源代码(在资源源文件中),而不是编辑* .exe ...所以我无法解决这个问题。