在win32 native exe中修改String表类型的资源

时间:2012-12-03 09:14:43

标签: winapi resources exe string-table

我想在我的exe资源中修改一些字符串。该资源类型是一个字符串表, 但是当我使用UpdateResource函数时,我不知道必须将哪个参数传递给它,因此它指向字符串表中的确切原始值​​。

类型参数是RT_STRING,但我应该将哪些内容发送到MAKEINTRESOURCEW()

HANDLE hExeFile = BeginUpdateResource(L"d:\\m.exe", FALSE);
WCHAR mail[]={L"ddddddd@gmail.com"};
UpdateResource(hExeFile,RT_STRING,MAKEINTRESOURCEW(?????), MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), (LPVOID)mail, wcslen(mail)*2);
EndUpdateResource(hExeFile, FALSE);

1 个答案:

答案 0 :(得分:1)

exe文件在运行时无法更新自己的资源。资源由操作系统锁定,并且是只读的。但是,如果您可以更新资源,那么显然您必须知道资源的ID才能更新它。如果它是编译器生成的资源,那么除非您的编译器使用可预测的ID号,否则您可能会运气不好。否则,使用.rc文件来定义您自己的资源数据,然后您可以使用您想要的任何ID