我有一个带有以下条目的.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编译为字符串类型?
答案 0 :(得分:3)
资源编译器RC没有任何允许您转义整数ID的语法,因此它被视为文本。
文档说:
唯一名称或标识资源的16位无符号整数。
资源编译器尝试将ID解释为整数。如果它可以这样做,那么ID被解释为整数,否则它被解释为字符串。如果整数超过16位整数的边界,则使用其值0xffff
。
这是资源编译器的限制。资源格式支持仅包含数字的文本ID。如果您对生产此类资源至关重要,那么我认为您需要: