【问题标题】:Using UpdateResource with StringTables in C++在 C++ 中将 UpdateResource 与 StringTables 一起使用
【发布时间】:2012-10-26 23:59:56
【问题描述】:

我需要使用 UpdateResource() 在 C++ 中编辑文件的资源,但是我不确定如何获取第 5 个参数 (lpData) 的数据。

我不知道如何创建需要为功能和数据结构提供的数据,有人可以提供有关如何获取/创建数据的指导吗?

【问题讨论】:

  • UpdateResource(),通过阅读文档,期望原始二进制数据作为 lpData 存储在文件中。 LoadResource() 似乎返回所述原始二进制数据。对于给定的资源类型或字段,您应该能够查询 LoadResource() 返回值的样子,我猜这是 UpdateResource() 期望的格式。要获得更具体的答案,您需要指定您正在调用 UpdateResource() 的资源的 lpType... 似乎可以识别一打到三打之间的资源类型?

标签: c++ embedded-resource


【解决方案1】:

你可以使用:

wchar_t wszMyText[] = L"Some text";
HANDLE hUpdate = BeginUpdateResourceW( L"/path/to/file", FALSE );
// test return value.
BOOL res = UpdateResourceW( hUpdate, RT_STRING, L"MyResource", wszMyText,
    sizeof(wszMyText) - sizeof(wchar_t);
// check return value
EndUpdateResource( hUpdate, FALSE );

【讨论】:

  • 这是替换任何资源的方法,字符串除外。字符串资源存储为字符串表,具有特定的布局(16 个长度前缀字符串的元组)。详情请见updating a string table with UpdateResource
  • @IInspectable 感谢您的评论和知识分享
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多