気にする方へ: .rc ファイルは、ダイアログ レイアウトなどの UI 要素を定義する MFC プロジェクトのリソース ファイルです。C++ と同じプリプロセッサを使用しますが、C++ の構文を共有しません。また、ウィンドウの CAPTION フィールドでは、2 つの文字列リテラルを単に並置するだけでは連結しません。文字列リテラル内の 2 つの二重引用符は、実際には 1 つの二重引用符文字を生成するエスケープ シーケンスです。したがって、リテラル:
"Hello""World"
最終的に次のようになります
Hello"World
ダイアログ ウィンドウのキャプション。
与えられた例の問題:
CAPTION "Hello"STRINGIZE(Word_)
「Hello」の最後の二重引用符を削除する必要がありますが、プリプロセッサはこれを実行できません。ただし、「Hello」をマクロに含めることが許可されている場合は、連結が可能です。まず、これらのマクロを定義しました。
#define CONCAT(a,b) a##b
#define STRINGIZE_(x) #x
#define STRINGIZE(x) STRINGIZE_(x)
次に、ダイアログ レコード内で次のようにします。
...
EXSTYLE WS_EX_APPWINDOW
CAPTION STRINGIZE(CONCAT(Hello,World))
FONT 10, "Segoe UI Semibold", 600, 0, 0x0
...
これにより、ダイアログのキャプションは最終的にHelloWorldのようになります。不要な引用符などはありません。このテクニックを使っていただければ幸いです。