自作プログラムのアイコン指定

久しぶりにまともな「備忘録」します。

・・・いや、はじめてな気もする。(苦笑)

自分でプログラム書いて、実行ファイルのアイコンをデフォルトから変えたくて探し回って結構苦労したので、メモ書きしときます。

とりあえず前提条件として、

  • OS:WindowsXP
  • 開発環境:Minimalist GNU for Windows(略称:minGW)

・・・ということにします。
これ以外でも動くかもしれないけど、保証はしませぬ。。。

VisualStudio使ってる環境ならいろいろ説明してくれてるところを見つけたんだけど、minGW使った環境の説明がなかなか見つからなくて・・・。(´;ω;`)ウッ…

◇用意するもの

  • アイコンを変更する実行ファイルのもととなるソースファイル(*.c)
  • アイコンにしたい画像ファイル(*.ico)
  • Windowsリソースファイル(*.rc)

以上の3つ!

ここで、すでにプログラムはコンパイルできて.exeを作れる状態としますね。
それから、アイコンに設定できる.icoファイルも用意できているとしますね。
(.icoファイルについては、「@icon変換」とかでググれば幸せになれます。)

で、Windowsリソースファイルについてですが、テキストエディタで

  • 「1 ICON “images.ico”」

とだけ書いておけばいいです。
最初の「1」は書かないと失敗しました。
「リソースID」って部分らしいです。
あ、「images」はアイコンのファイル名です。
「icon」とか「hoge」とかでも構いません。

それとこのリソースファイルの名前も適当で構いません。
僕は「resource.rc」にしときました。なんとなく。

さて、これで準備は終わり。
実際にアイコンを適用します。

コマンドプロンプトを開いて、3つのファイルが置いてあるフォルダまで移動しましょう。
(cmd.exeをコピーしてきてもおK)

移動したら、以下の通り実行します。

> windres -o resource.o resource.rc
> gcc -o program.exe program.c resource.o 

これだけ。

1文目の windres っていうのは、Windowsリソースファイル(*.rc) を読み込んで、それを res または coff ファイルに変換する命令だそうな。
でも、実際できるのはオブジェクトファイル(*.o)である。

指定してるから当たり前なんだけど、この辺りは少しよくわからないです。。。
要は、「アイコンとしてこのファイルを指定するぞ!」という情報の入ったファイルを作成するそうな。

2文目はそのアイコンを指定した情報を最後に書いて、生成する実行ファイルに情報を埋め込んでるんだそうな。

なんだこの伝聞系のオンパレードは。

ともかく、これでうまくいくはずです。というか、いきました。

こういうのが出来るようになると、ちょっぴり夢が広がりんぐ。わくわくする。

というわけで、今回はこの辺でー。