User-Defined リソース

ユーザー定義のリソース定義ステートメントは、アプリケーション固有のデータを含むリソースを定義します。 データには任意の形式を指定でき、指定されたファイルの内容 ( filename パラメーターが指定されている場合) または一連の数値と文字列 ( 生データ ブロックが指定されている場合) として定義できます。

nameID typeID filename

filename は、リソースのバイナリ データを含むファイルの名前を指定します。 ファイルの内容はリソースとして含まれます。 RC はバイナリ データを解釈しません。 データがターゲット コンピューター アーキテクチャに適切に配置されていることを確認するのはプログラマの責任です。

ユーザー定義リソースは、次の構文を使用して、リソース スクリプトで完全に定義することもできます。

nameID typeID  {  raw-data  }

パラメーター

Nameid

リソースを識別する一意の名前または 16 ビット符号なし整数。

Typeid

リソースの種類を識別する一意の名前または 16 ビット符号なし整数。 数値を指定する場合は、255 を超える必要があります。 数値 1 から 255 は、既存および将来再定義されたリソースの種類用に予約されています。

filename

リソース データを含むファイルの名前。 パラメーターは有効なファイル名である必要があります。ファイルが現在の作業ディレクトリにない場合は、完全パスである必要があります。

raw-data

1 つ以上の整数または文字列で構成される生データ。 整数は、10 進数、8 進数、または 16 進数の形式で指定できます。 16 ビット Windows と互換性を持つように、整数は WORD 値として格納されます。 "L" サフィックスを持つ整数を修飾することで、整数を DWORD 値として格納できます。

文字列は引用符で囲まれます。 RC は、終端の null 文字を文字列に自動的に追加しません。 各文字列は、"L" プレフィックスを持つワイド文字列として修飾しない限り、指定された ANSI 文字のシーケンスです。

データ ブロックは DWORD 境界で開始され、RC は 生データ ブロック内のデータの埋め込みまたはアラインメントを実行しません。 ブロック内のデータを適切に配置するのはプログラマの責任です。

次の例は、いくつかのユーザー定義ステートメントを示しています。

array   MYRES   data.res
14      300     custom.res
18 MYRES2
{
   "Here is an ANSI string\0",    // explicitly null-terminated 
   L"Here is a Unicode string\0", // explicitly null-terminated 
   1024,                          // integer, stored as WORD 
   7L,                            // integer, stored as DWORD 
   0x029a,                        // hex integer 
   0o733,                         // octal integer 
}