User-Defined 资源

用户定义的资源定义语句定义包含特定于应用程序的数据的资源。 数据可以采用任何格式,并且可以定义为给定文件的内容(如果给定 文件名 参数),也可以定义为一系列数字和字符串(如果指定 原始数据 块)。

nameID typeID filename

文件名 指定包含资源的二进制数据的文件的名称。 文件的内容作为资源包含在内。 RC 不会以任何方式解释二进制数据。 程序员有责任确保数据与目标计算机体系结构正确对齐。

还可以使用以下语法在资源脚本中完全定义用户定义的资源:

nameID typeID  {  raw-data  }

参数

nameID

唯一名称或标识资源的 16 位无符号整数。

typeID

唯一名称或标识资源类型的 16 位无符号整数。 如果给定数字,则它必须大于 255。 数字 1 到 255 是为现有和将来重新定义的资源类型保留的。

文件名

包含资源数据的文件的名称。 参数必须是有效的文件名;如果文件不在当前工作目录中,则它必须是完整路径。

原始数据

包含一个或多个整数或字符字符串的原始数据。 可以使用十进制、八进制或十六进制格式指定整数。 为了与 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 
}