STRINGTABLE 资源
定义应用程序的一个或多个字符串资源。 字符串资源只是以 null 结尾的 Unicode 或 ASCII 字符串,可在需要时使用 LoadString 函数从可执行文件加载这些字符串。
可通过两种方式设置 STRINGTABLE 语句的格式:
STRINGTABLE [optional-statements] {stringID string ...}
- 或 -
STRINGTABLE
[optional-statements]
BEGIN
stringID string
. . .
END
parameters
-
optional-statements
-
此参数可以是以下语句的零个或多个。
语句 说明 特征dword 有关资源的用户定义信息,可供读取和写入资源文件的工具使用。 有关详细信息,请参阅 特征。 语言语言, 子语言 指定资源的语言。 有关详细信息,请参阅 LANGUAGE。 VERSIONdword 可供读取和写入资源文件的工具使用的资源的用户定义版本号。 有关详细信息,请参阅 版本。 -
stringID
-
标识资源的无符号 16 位整数。
-
字符串
-
用引号括起来的一个或多个字符串。 字符串必须不超过 4097 个字符,并且必须占用源文件 (中的单行,除非“\”用作行延续) 。 若要向字符串添加回车符,请使用以下字符序列:\012。 例如,“第一行\012行二”定义如下所示的字符串:
Line one Line two
若要在字符串中嵌入引号,请使用以下序列:“”。 例如,“”“第三行”“”定义如下所示的字符串:
"Line three"
若要对 Unicode 字符进行编码,请使用“L”,后跟用引号括起来的 Unicode 字符。 有关示例,请参阅示例部分。
资源编译器还支持 字符串中的行延续。 有关示例,请参阅示例部分。
还支持某些属性以实现向后兼容性。 有关详细信息,请参阅 通用资源属性。
备注
RC 为每个节分配 16 个字符串,并使用标识符值来确定哪个节包含字符串。 标识符仅在底部 4 位有区别的字符串放置在同一节中。
示例
以下示例演示如何使用 STRINGTABLE 语句显示 ASCII 字符串:
#define IDS_HELLO 1
#define IDS_GOODBYE 2
STRINGTABLE
{
IDS_HELLO, "Hello"
IDS_GOODBYE, "Goodbye"
}
以下示例演示如何对 Unicode 字符进行编码:
STRINGTABLE
BEGIN
IDS_CHINESESTRING L"\x5e2e\x52a9"
IDS_RUSSIANSTRING L"\x0421\x043f\x0440\x0430\x0432\x043a\x0430"
IDS_ARABICSTRING L"\x062a\x0639\x0644\x064a\x0645\x0627\x062a"
END
以下示例演示了具有 ASCII 和 Unicode 的字符串。 请注意,没有初始“L”的字符串使用 2 位转义格式:
STRINGTABLE
BEGIN
IDS_1 L"5\x00BC-Inch Floppy Disk"
IDS_1a "5\xBC-Inch Floppy Disk"
IDS_2 L"Don't confuse \x2229 (intersection) with \x222A (union)"
IDS_3 "Copyright \xA92001"
IDS_3a L"Copyright \x00a92001"
END
以下示例演示如何使用行延续:
STRINGTABLE
BEGIN
IDS_VERYLONGSTRING "blah blah blah blah blah blah \
blah blah blah blah blah blah \
blah blah blah blah blah blah \
blah blah blah blah blah blah"
END
另请参阅