4.4. Windows リソースの定義

windres は Windows リソースファイル (*.rc) を読み込み、それを res または coff ファイルへと変換します。 入力ファイルのシンタックスとセマンティクスについては他のリソースコンパイラと同様ですので、 詳細については Windows のリソースフォーマットについて記述した他の出版物を当ってみて下さい。 windres 自身もまた、 binutils マニュアル中で完全に文書化されています。 ここではプロジェクト中での使用方法について一例を挙げます。

myapp.exe : myapp.o myapp.res
	gcc -mwindows myapp.o myapp.res -o $@

myapp.res : myapp.rc resource.h
	windres $< -O coff -o $@

以下は windres がサポートするシンタックスのクイックリファレンスです。

id ACCELERATORS サブオプション
BEG
"^C" 12
"Q" 12
65 12
65 12 , VIRTKEY ASCII NOINVERT SHIFT CONTROL ALT
65 12 , VIRTKEY, ASCII, NOINVERT, SHIFT, CONTROL, ALT
(12 はあるアクセラレータ ID)
END

SHIFT、CONTROL、ALT には VIRTKEY が必要


id BITMAP メモリフラグ "ファイル名"
メモリフラグのデフォルトは MOVEABLE


id CURSOR メモリフラグ "ファイル名"
メモリフラグのデフォルトは MOVEABLE,DISCARDABLE


id DIALOG メモリフラグ 拡張スタイル x,y,幅,高さ スタイル BEG コントロール END
id DIALOGEX メモリフラグ 拡張スタイル x,y,幅,高さ スタイル BEG コントロール END
id DIALOGEX メモリフラグ 拡張スタイル x,y,幅,高さ,ヘルプID スタイル BEG コントロール END

メモリフラグのデフォルトは MOVEABLE
拡張スタイルは EXSTYLE=number となる
スタイル:	CAPTION "文字列"
	CLASS id
	STYLE  FOO | NOT FOO | (12)
	EXSTYLE number
	FONT 数値, "名称"
	FONT 数値, "名称",ウェイト,イタリック
	MENU id
	CHARACTERISTICS 数値
	LANGUAGE 数値,数値
	VERSIONK 数値
コントロール:
	AUTO3STATE パラメータ
	AUTOCHECKBOX パラメータ
	AUTORADIOBUTTON パラメータ
	BEDIT パラメータ
	CHECKBOX パラメータ
	COMBOBOX パラメータ
	CONTROL ["名称",] id, クラス, スタイル, x,y,w,h [,拡張スタイル] [データ]
	CONTROL ["名称",] id, クラス, スタイル, x,y,w,h, 拡張スタイル, ヘルプID [データ]
	CTEXT パラメータ
	DEFPUSHBUTTON パラメータ
	EDITTEXT パラメータ
	GROUPBOX パラメータ
	HEDIT パラメータ
	ICON ["名前",] id, x,y [データ]
	ICON ["名前",] id, x,y,w,h, スタイル, 拡張スタイル [データ]
	ICON ["名前",] id, x,y,w,h, スタイル, 拡張スタイル, ヘルプID [データ]
	IEDIT パラメータ
	LISTBOX パラメータ
	LTEXT パラメータ
	PUSHBOX パラメータ
	PUSHBUTTON パラメータ
	RADIOBUTTON パラメータ
	RTEXT パラメータ
	SCROLLBAR パラメータ
	STATE3 パラメータ
	USERBUTTON "文字列", id, x,y,w,h, スタイル, 拡張スタイル
パラメータ:
	["名称",] id, x, y, w, h, [データ]
	["名称",] id, x, y, w, h, スタイル [,拡張スタイル] [データ]
	["名称",] id, x, y, w, h, スタイル, 拡張スタイル, ヘルプID [データ]

[データ] はオプションで BEG (文字列|数値) [,(文字列|数値)] (その他) END 


id FONT メモリフラグ "ファイル名"
メモリフラグのデフォルトは MOVEABLE|DISCARDABLE

id ICON メモリフラグ "ファイル名"
メモリフラグのデフォルトは MOVEABLE|DISCARDABLE

LANGUAGE 数値,数値

id MENU オプション BEG アイテム END
アイテム:
	"文字列", id, フラグ
	SEPARATOR
	POPUP "文字列" フラグ BEG メニューアイテム END
フラグ:
	CHECKED
	GRAYED
	HELP
	INACTIVE
	MENUBARBREAK
	MENUBREAK

id MENUEX サブオプション BEG アイテム END
アイテム:
	MENUITEM "文字列"
	MENUITEM "文字列", id
	MENUITEM "文字列", id, タイプ [,状態]
	POPUP "文字列" BEG アイテム END
	POPUP "文字列", id BEG アイテム END
	POPUP "文字列", id, タイプ BEG アイテム END
	POPUP "文字列", id, タイプ, 状態 [,ヘルプID] BEG アイテム END

id MESSAGETABLE メモリフラグ "ファイル名"
メモリフラグのデフォルトは MOVEABLE

id RCDATA サブオプション BEG (文字列|数値) [,(文字列|数値)] (その他) END

STRINGTABLE サブオプション BEG 文字列 END
文字列:
	id "文字列"
	id, "文字列"

(ユーザデータ)
id id サブオプション BEG (文字列|数値) [,(文字列|数値)] (その他) END

id VERSIONINFO 材料 BEG バージョンブロック END
材料:	FILEVERSION 数値,数値,数値,数値
	PRODUCTVERSION 数値,数値,数値,数値
	FILEFLAGSMASK 数値
	FILEOS 数値
	FILETYPE 数値
	FILESUBTYPE 数値
バージョンブロック:
	BLOCK "StringFileInfo" BEG BLOCK BEG バージョン値 END END
	BLOCK "VarFileInfo" BEG BLOCK BEG バージョン翻訳情報 END END
バージョン値: VALUE "foo","bar"
バージョン翻訳情報: VALUE 数値,数値



サブオプション:
	メモリフラグ
	CHARACTERISTICS 数値
	LANGUAGE 数値,数値
	VERSIONK 数値

メモリフラグは MOVEABLE/FIXED PURE/IMPURE PRELOAD/LOADONCALL DISCARDABLE