RC.EXE - Microsoft SDK リソース コンパイラ
RC は、Microsoft SDK の標準リソース コンパイラのコマンドライン版です。入力としてリソース スクリプト ファイル(.RC)を受け取り、出力としてリソース オブジェクト ファイル(.RES)を生成します。
C++Builder でも Delphi でも、リソース コンパイラを選択できます。 [プロジェクト|オプション...|リソース コンパイラ] ダイアログ ボックスで、以下のいずれかを選択できます。
- BRCC32.exe: C++Builder リソース コンパイラ
- RC.exe: Microsoft プラットフォーム SDK リソース コンパイラ
RC では、リソース ファイルとファイル名で Unicode 文字をサポートしているほか、アルファ チャネル付きアイコンなどの新しい Vista リソース タイプもサポートしています。
RAD Studio 環境における RC コンパイラの実際のファイル名は CGRC.exe です。
BRCC32 と RC の相違点
RC を使用することにした場合は、以下のように、既存の .RC ファイルで BRCC32 と RC のいくつかの相違点に対処する必要があります。
- C++ の場合も Delphi の場合も、RC で Windows の型または定数を使用するには、明示的に
#include winresrc.h
を指定する必要があります。 - RC では、BRCC32 とは異なり、画像データをインラインで処理しません。RC で画像を使用する場合は、画像を保存し、それをインラインで参照する必要があります。
- RC では、BRCC32 とは異なる方法で行継続文字を処理します。最も簡単な変更は、埋め込み改行(
\n
)で文字列を結合することです。 - RC の場合、コマンド要素の順序については、リソース ファイルの名前より先にすべてのコマンド オプションが来る必要があります。
- RC では、
STRINGLIST
内で文字列の後にコンマを挿入できません。 - RC では文字列を C 形式の文字列として扱います。つまり、以下のいずれかを行う必要があります。
- ファイル名に含まれる単一バックスラッシュ(
\
)を、二重バックスラッシュ(\\
)を使ってエスケープする。 - 単一バックスラッシュ(
\
)の代わりに前方スラッシュ(/
)を使用する。
- ファイル名に含まれる単一バックスラッシュ(
- RC の場合は、
#include <dirname>
を指定してもカレント ディレクトリを検索しません。カレント ディレクトリを検索するには、#include "dirname"
を使用します。 - 文字列に二重引用符文字を埋め込む場合は、バックスラッシュ エスケープ文字ではなく、2 つの連続した二重引用符文字(
""
)を使用します。 - RCDATA 値とバイト値の扱いが両者で異なります。たとえば、
- BRCC32 では、
'11 aa 22 bb'
をバイト列として扱います。 - RC の場合は、
0xaa11 0xbb22
と指定する必要があります。
- BRCC32 では、