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 では 256x256 のアイコンが 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 フォルダのファイルと置き換えます
これでコンパイル通るように・ω・
だが、なぜか表示されない!
何がいかんのだろう・ω・?
さんざん試行錯誤した結果 16x16 のフルカラーイメージアイコンがないとだめらしい・ω・;
今度はうまくいきました・ω・
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で編集はできません。