如何生成字符串类型ID的资源条目?
How to generate resource entry of string type ID?
我有一个包含以下条目的 .rc 文件:
01111 my_res { "string 1" }
01113 my_res { "string 2" }
01119 my_res { "string 3" }
当我用rc.exe编译这个.rc文件时,资源条目id分别变成1111
、1113
和1119
。
显然,资源编译器将 ID 视为数字。
我的第一印象是 .res
文件不能将数字存储为字符串类型。但是当使用资源编辑器(例如:XNResourceEditor.exe
将资源ID 1111
更改为01111
并存储为01111
时。这表明资源ID可能存储为数字字符串类型。
有没有办法将数字资源id编译为字符串类型?
资源编译器 RC 没有任何允许您转义整数 ID 以便将其视为文本的语法。
文档说:
Unique name or a 16-bit unsigned integer that identifies the resource.
资源编译器尝试将 ID 解释为整数。如果可以,则 ID 被解释为整数,否则被解释为字符串。如果整数超出 16 位整数的范围,则使用它的值和 0xffff
。
这是资源编译器的限制。资源格式支持仅包含数字的文本 ID。如果生产此类资源对您来说至关重要,那么我认为您需要:
- 找到一个允许将数字转义为文本的资源编译器,或者
- 编写自己的基本资源编译器来执行任务。
我有一个包含以下条目的 .rc 文件:
01111 my_res { "string 1" }
01113 my_res { "string 2" }
01119 my_res { "string 3" }
当我用rc.exe编译这个.rc文件时,资源条目id分别变成1111
、1113
和1119
。
显然,资源编译器将 ID 视为数字。
我的第一印象是 .res
文件不能将数字存储为字符串类型。但是当使用资源编辑器(例如:XNResourceEditor.exe
将资源ID 1111
更改为01111
并存储为01111
时。这表明资源ID可能存储为数字字符串类型。
有没有办法将数字资源id编译为字符串类型?
资源编译器 RC 没有任何允许您转义整数 ID 以便将其视为文本的语法。
文档说:
Unique name or a 16-bit unsigned integer that identifies the resource.
资源编译器尝试将 ID 解释为整数。如果可以,则 ID 被解释为整数,否则被解释为字符串。如果整数超出 16 位整数的范围,则使用它的值和 0xffff
。
这是资源编译器的限制。资源格式支持仅包含数字的文本 ID。如果生产此类资源对您来说至关重要,那么我认为您需要:
- 找到一个允许将数字转义为文本的资源编译器,或者
- 编写自己的基本资源编译器来执行任务。