windres reads a Windows resource file (*.rc) and converts it to a res or coff file. The syntax and semantics of the input file are the same as for any other resource compiler, so please refer to any publication describing the Windows resource format for details. Also, the windres program itself is fully documented in the Binutils manual. Here's an example of using it in a project:
myapp.exe : myapp.o myapp.res gcc -mwindows myapp.o myapp.res -o $@ myapp.res : myapp.rc resource.h windres $< -O coff -o $@
What follows is a quick-reference to the syntax windres supports.
id ACCELERATORS suboptions BEG "^C" 12 "Q" 12 65 12 65 12 , VIRTKEY ASCII NOINVERT SHIFT CONTROL ALT 65 12 , VIRTKEY, ASCII, NOINVERT, SHIFT, CONTROL, ALT (12 is an acc_id) END SHIFT, CONTROL, ALT require VIRTKEY id BITMAP memflags "filename" memflags defaults to MOVEABLE id CURSOR memflags "filename" memflags defaults to MOVEABLE,DISCARDABLE id DIALOG memflags exstyle x,y,width,height styles BEG controls END id DIALOGEX memflags exstyle x,y,width,height styles BEG controls END id DIALOGEX memflags exstyle x,y,width,height,helpid styles BEG controls END memflags defaults to MOVEABLE exstyle may be EXSTYLE=number styles: CAPTION "string" CLASS id STYLE FOO | NOT FOO | (12) EXSTYLE number FONT number, "name" FONT number, "name",weight,italic MENU id CHARACTERISTICS number LANGUAGE number,number VERSIONK number controls: AUTO3STATE params AUTOCHECKBOX params AUTORADIOBUTTON params BEDIT params CHECKBOX params COMBOBOX params CONTROL ["name",] id, class, style, x,y,w,h [,exstyle] [data] CONTROL ["name",] id, class, style, x,y,w,h, exstyle, helpid [data] CTEXT params DEFPUSHBUTTON params EDITTEXT params GROUPBOX params HEDIT params ICON ["name",] id, x,y [data] ICON ["name",] id, x,y,w,h, style, exstyle [data] ICON ["name",] id, x,y,w,h, style, exstyle, helpid [data] IEDIT params LISTBOX params LTEXT params PUSHBOX params PUSHBUTTON params RADIOBUTTON params RTEXT params SCROLLBAR params STATE3 params USERBUTTON "string", id, x,y,w,h, style, exstyle params: ["name",] id, x, y, w, h, [data] ["name",] id, x, y, w, h, style [,exstyle] [data] ["name",] id, x, y, w, h, style, exstyle, helpid [data] [data] is optional BEG (string|number) [,(string|number)] (etc) END id FONT memflags "filename" memflags defaults to MOVEABLE|DISCARDABLE id ICON memflags "filename" memflags defaults to MOVEABLE|DISCARDABLE LANGUAGE num,num id MENU options BEG items END items: "string", id, flags SEPARATOR POPUP "string" flags BEG menuitems END flags: CHECKED GRAYED HELP INACTIVE MENUBARBREAK MENUBREAK id MENUEX suboptions BEG items END items: MENUITEM "string" MENUITEM "string", id MENUITEM "string", id, type [,state] POPUP "string" BEG items END POPUP "string", id BEG items END POPUP "string", id, type BEG items END POPUP "string", id, type, state [,helpid] BEG items END id MESSAGETABLE memflags "filename" memflags defaults to MOVEABLE id RCDATA suboptions BEG (string|number) [,(string|number)] (etc) END STRINGTABLE suboptions BEG strings END strings: id "string" id, "string" (User data) id id suboptions BEG (string|number) [,(string|number)] (etc) END id VERSIONINFO stuffs BEG verblocks END stuffs: FILEVERSION num,num,num,num PRODUCTVERSION num,num,num,num FILEFLAGSMASK num FILEOS num FILETYPE num FILESUBTYPE num verblocks: BLOCK "StringFileInfo" BEG BLOCK BEG vervals END END BLOCK "VarFileInfo" BEG BLOCK BEG vertrans END END vervals: VALUE "foo","bar" vertrans: VALUE num,num suboptions: memflags CHARACTERISTICS num LANGUAGE num,num VERSIONK num memflags are MOVEABLE/FIXED PURE/IMPURE PRELOAD/LOADONCALL DISCARDABLE