VC++2005 で Vista アイコン対応アプリを作ってはまった話
Axialis IconWorkshopでVista対応のアイコンを作成して、プロジェクトに読ませたら、Vista対応アイコンアプリの出来上がり…だと思っていました・ω・
ところが…
| rsrc.rc(5) : error RC2176 : old DIB in res\WinTest.ico; pass it through SDKPAINT |
なんか古いDIB形式だってはじかれるよ!
じゃあ、どうすりゃいいんだ?
とググったら。
ckw の小さいアイコンをちゃんとタイトルバーやタスクバーに表示させる – anonymous苦労者
| どうやら古い RC では 256×256 のアイコンが NG のようなので、アイコンファイルを変更せずにコンパイルした rsrc.res のアイコンを、Resource Hacker で置き換えてからビルドしました。 |
ってこの解決方法はやだな・ω・;
visual c++ – error RC2176 : old DIB in res\icon3.ico; pass it through SDKPAINT? – Stack Overflow
というわけでこちらの解決方法。
まず、 Windows Vista 以降 のSDKをインストール。
%ProgramFiles%\Microsoft SDKs\Windows の下に v6.0A /v7.0A フォルダがあって、さらにその中の binに rc.exe と rcdll.dll があるのでこれを Visual Studio 2005 の VC\bin フォルダのファイルと置き換えます
これでコンパイル通るように・ω・

だが、なぜか表示されない!

何がいかんのだろう・ω・?

さんざん試行錯誤した結果 16×16 のフルカラーイメージアイコンがないとだめらしい・ω・;

今度はうまくいきました・ω・


rc.exeとrcdll.dllの上書きコピー以外にも方法はありますよ。メニューバー→ツール→オプション→(←ペイン)プロジェクトおよびソリューション→VC++ ディレクトリ→(右ペイン)ディレクトリを表示するプロジェクト: 「実行可能ファイル」にC:\Program Files\Microsoft SDKs\Windows\v7.1\BinなどWindows SDKのディレクトリを一番上に登録すれば良いです。
この方法なら、「先日の rcdll.dll の置換をやるとIDEでリソースが開けなくなる?」のようなトラブルは起こりません。もっとも、ビルドできるようになるだけで、Visual Studio 2005のIDEで編集はできません。
rc.exeとrcdll.dllの上書きコピー以外にも方法はありますよ。メニューバー→ツール→オプション→(←ペイン)プロジェクトおよびソリューション→VC++ ディレクトリ→(右ペイン)ディレクトリを表示するプロジェクト: 「実行可能ファイル」にC:\Program Files\Microsoft SDKs\Windows\v7.1\BinなどWindows SDKのディレクトリを一番上に登録すれば良いです。
この方法なら、「先日の rcdll.dll の置換をやるとIDEでリソースが開けなくなる?」のようなトラブルは起こりません。もっとも、ビルドできるようになるだけで、Visual Studio 2005のIDEで編集はできません。