0

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

1234 RCDATA myfile.txt

这很好用:“myfile.txt”的内容包含在我的可执行文件中。问题是字符串中没有添加 0 终止符,我无法将其添加到文件中。有没有办法从 .rc 文件中添加一个 0 终止符?像这样的东西:

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

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

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

非常感谢,伊莱

4

3 回答 3

2

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

makeZ myfile.txt myfileZ.txt

在你的 .rc 中会有

 1234 RCDATA myfileZ.txt
于 2008-10-24T10:15:05.130 回答
0

或者,您可以查看将数据嵌入 RC 本身,根据GORC 手册中的此部分:

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 
于 2008-10-27T07:41:00.673 回答
0

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

于 2008-10-27T08:01:37.717 回答