User-Defined资源
用户定义的资源定义语句定义包含特定于应用程序的数据的资源。 数据可以采用任何格式,并且可以定义为给定文件的内容 (如果) 指定 文件名 参数,也可以定义为一系列数字和字符串(如果 () 指定 原始数据 块)。
nameID typeID filename
文件名指定包含资源的二进制数据的文件的名称。 文件的内容作为资源包含在内。 RC 不会以任何方式解释二进制数据。 程序员负责确保数据与目标计算机体系结构正确对齐。
还可以使用以下语法在资源脚本中完全定义用户定义的资源:
nameID typeID { raw-data }
parameters
-
nameID
-
标识资源的唯一名称或 16 位无符号整数。
-
typeID
-
唯一名称或标识资源类型的 16 位无符号整数。 如果给定一个数字,则它必须大于 255。 数字 1 到 255 是为现有和将来重新定义的资源类型保留的。
-
filename
-
包含资源数据的文件的名称。 参数必须是有效的文件名;如果文件不在当前工作目录中,则它必须是完整路径。
-
raw-data
-
由一个或多个整数或字符串组成的原始数据。 整数可以十进制、八进制或十六进制格式指定。 为了与 16 位 Windows 兼容,整数存储为 WORD 值。 可以通过使用“L”后缀限定整数,将整数存储为 DWORD 值。
字符串用引号括起来。 RC 不会自动将终止 null 字符追加到字符串中。 每个字符串都是指定 ANSI 字符的序列,除非将其限定为具有“L”前缀的宽字符字符串。
数据块从 DWORD 边界开始,RC 不对 原始 数据块中的数据执行填充或对齐。 程序员负责确保数据在块内正确对齐。
示例
以下示例演示了几个用户定义的语句:
array MYRES data.res
14 300 custom.res
18 MYRES2
{
"Here is an ANSI string\0", // explicitly null-terminated
L"Here is a Unicode string\0", // explicitly null-terminated
1024, // integer, stored as WORD
7L, // integer, stored as DWORD
0x029a, // hex integer
0o733, // octal integer
}