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 
}