1

我想修改我的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);
4

1 回答 1

1

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

于 2012-12-03T21:23:07.477 回答