RCDATA终结符

时间:2008-10-24 09:44:40

标签: windows resources

我有一个.rc文件,用于在我的可执行文件中包含一些文本数据,如下所示:

1234 RCDATA myfile.txt

这很好用:'myfile.txt'的内容包含在我的可执行文件中。 问题是没有向字符串添加0终结符,我无法将其添加到文件中。有没有办法在.rc文件中添加0-terminator?像这样:

1234 RCDATA { myfile.txt, "\0" }         // error RC2104

请注意,我已经找到了这个解决方案,但我正在寻找更优雅的东西。

1234 RCDATA myfile.txt
1235 RCDATA { "\0" }

非常感谢, 利

3 个答案:

答案 0 :(得分:2)

我不这么认为,除非你自己编写资源编译器 我没有遇到一个允许从多个来源建立一个资源的人 您可以编写一个小实用程序来向文件添加尾部'\ 0',例如makeZ.exe,
并设置一个额外的构建步骤:

makeZ myfile.txt myfileZ.txt

在你.rc中会有

 1234 RCDATA myfileZ.txt

答案 1 :(得分:0)

或者,您可以查看将数据嵌入RC本身,根据GORC manual中的此切片:

0x3333 RCDATA
BEGIN
  "Hello world"
  "Hello world (zero terminated)\0"
  L"A Unicode version of the above\0"
  0x9999  ;hex number stored as a word
END

MyRes RCDATA
BEGIN
  1034  ;decimal number stored as a word
END

MyRes MyResType
BEGIN
  10456L  ;decimal number stored as a dword
  1234L,56666L,99999L  ;decimal numbers stored as dwords
END

34h 100h
BEGIN
  33hL,34hL,35hL,36hL  ;hex numbers stored as dwords
  0x37L,0x38L,0x39L,0x40L  ;C-style hex numbers stored as dwords
END 

答案 2 :(得分:0)

您最好将尾随字符放在文件本身中。如果myfile.txt存储在ANSI中,则需要一个尾随字节,如果myfile.txt存储在Unicode中,则需要两个尾随字节,并且您的RCDATA语句无法打开它。