我使用Win32 API编写了一个C程序。我设法修改了一些图像并将它们保存在一个文件中。我试图修改字符串表,但我不能。我只是设法把它显示为一个普通的字符串。
图片来源:Resource Tuner:
的数据
我的C代码:
#include <windows.h>
int main() {
const char* dllPath = "path/to/your_dll.dll";
const int resourceID = 296;
const char* newText = "Hello World";
HANDLE hUpdate = BeginUpdateResource(dllPath, FALSE);
if (hUpdate == NULL) {
return 1;
}
BOOL result = UpdateResource(hUpdate, RT_STRING, MAKEINTRESOURCE(resourceID), MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), (LPVOID)newText, strlen(newText) + 1);
if (result == FALSE) {
EndUpdateResource(hUpdate, TRUE);
return 1;
}
result = EndUpdateResource(hUpdate, FALSE);
if (result == FALSE) {
return 1;
}
return 0;
}
字符串
我的字符串地址是296。经过一些工作,我得到了这个结果,但它不被使用此.dll
文件的软件识别。
它是这样表示的:'Hello World'
没有任何表格缩进。
我试图构建与那里相同的结构,但它仍然被识别为单个字符串,而不是字符串表。
1条答案
按热度按时间7kjnsjlb1#
我同意社会人士的意见:字符串资源不同于任何其他资源格式。“它们不是作为单独的条目存储,而是打包成一组,每组16个字符串。
有关详细信息,请参阅以下主题:updating a string table with UpdateResource