8.08.2008

MinGWで自作プログラムにアイコンを付与する方法

15パズルなんですが、うまいぐあいの判定関数&パズル生成関数が思い浮かばなくて、結局ちょこちょこと内部をリファクタリングしただけで、ニコニコを見てしまうという悪循環に(以下略

さて、そんな中で、MinGWでプログラムにアイコンを設定できないものかと思い立ち、ちょろっと探してやってみました。
(すでにダウンロードできる15パズルのファイルは差し替わっています)

ちなみに、(SDLとあわせているせいかもしれませんが)ウィンドウ左上のミニアイコンにはリソースからの設定ができていません。
たぶん、ゲームプログラムならフルスクリーンだったり、左上アイコンにはこだわらないだろうから問題ないんでしょうけど。

一番簡単なのは、
101 ICON "iconfilename.ico"
なんてのを適当なテキストエディタで作成して、resource.rcか何かのファイル名で保存しておきます。

次に、windres(今回私が相手にしているクロスコンパイル環境においては、i586~という長い名前だったので、適当にlnしておきましたよ。)を使って、
$ windres -o resource.o resource.rc
とすると、resource.oというオブジェクトファイルが生成できます。

あとはこれをコンパイル時に渡してあげればOK。
具体的には
$ mingw-cc filename.c resource.o
でいけるはず。
私はリソースIDを101にしたんだけれども、(リソースファイル内にほかのアイコンが無いせいかもしれないが)勝手にデフォルトアイコンとして付与されたから、よっぽど変なことしてない限り、これでいけるんじゃなかろうかと。

よし。今度こそ続きは帰ってきてからやろう。

# 何かいい判定関数/生成関数のアイディアをお持ちでしたら、教えてください。


以下、参考サイト(順不同)
http://www.sixnine.net/cygwin/translation/cygwin-ug-net/windres.html
http://www.m-oz.com/soft/mingw.html
http://www.arcpit.co.jp/winapi/api_01/ap010312.htm

0 件のコメント: