我想写一个基于资源的简单配置程序。我使用 Windows API 函数来更新 stub.exe 的资源。应用程序未显示错误,但未添加资源(有时 exe 文件已损坏!)。当我在 ResourceHacker 中打开 stub.exe 时,没有资源。
我的代码是:
#include <Windows.h>
#define LANGUAGEID 1033
HANDLE hUpdate;
char szStubPath[MAX_PATH];
char DeadCode[] = "0xDEADC0DE";
unsigned int error = 0;
int main()
{
GetCurrentDirectory(MAX_PATH, szStubPath);
lstrcat(szStubPath, "\\stub.exe");
hUpdate = BeginUpdateResource(szStubPath, FALSE);
if(hUpdate == NULL)
{
MessageBox(0, "BeginUpdateResource failed.", 0, MB_OK+MB_ICONERROR);
error = 1;
}
if(UpdateResource(hUpdate, RT_STRING, TEXT("CURRENT"), LANGUAGEID, &DeadCode, 11) == FALSE)
{
MessageBox(0, "UpdateResource failed.", 0, MB_OK+MB_ICONERROR);
error = 1;
}
if(EndUpdateResource(hUpdate, FALSE) == FALSE)
{
MessageBox(0, "EndUpdateResource failed.", 0, MB_OK+MB_ICONERROR);
error = 1;
}
if(error == 0)
{
MessageBox(0, "stub.exe - Resource added.", "Info", 0);
return EXIT_SUCCESS;
}
else
{
MessageBox(0, "stub.exe - Adding resource failed.", "Info", 0);
return EXIT_FAILURE;
}
}
没有错误,但没有添加资源(有时exe文件损坏!),为什么?怎么了?
编辑: 我想添加信息,stub.exe 是用 MASM32 编写的,config.exe 是用 Visual C++ 编写的。不同的编程语言是否有可能产生问题?
问候,大卫