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

独自のリソース コンパイラを作成しない限り、そうは思いません。
私は、複数のソースから 1 つのリソースを構築できるものに会ったことがありません。
makeZ.exe のように、末尾に '\0' をファイルに追加する小さなユーティリティを作成し
、追加のビルド ステップを設定することができます。

makeZ myfile.txt myfileZ.txt

あなたには.rcがあります

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

または、 GORC マニュアルのこのスライスに従って、RC 自体にデータを埋め込むことを検討することもできます。

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 で格納されている場合は末尾に 1 バイトが必要であり、myfile.txt が Unicode で格納されている場合は末尾に 2 バイトが必要であり、RCDATA ステートメントはそれをオンにすることはできません。

于 2008-10-27T08:01:37.717 に答える