4

このエラーとは何ですか、またそれを解決する方法は?スマートデバイスのMFC開発にVisualStudio2005を使用していますが、2008にアップグレードすると問題が解決します。

エラー85エラーRC2176:res\icon3.icoの古いDIB; SDKPAINTを通過します

ありがとう

4

7 に答える 7

6

これはあなたを助けるかもしれません: http ://www.axialis.com/tutorials/vistaicons.html

ビスタアイコンがPNGヘッダーを使用するようになりました。エラーはわずかに誤りですが、古いDIBではないため、認識できないヘッダーであるPNGです。

そのアイコンはどのように作成されましたか?ずっと前に、Visual C ++ 6.0には、アイコン.icoファイルを作成する独自の小さな方法がありました。おそらくPNGを使用していないので、これをエミュレートするプログラムを見つけて、古いDIBの方法を使用してアイコンを作成するのがよいでしょう。または2008にアップグレードします:)

于 2010-08-03T22:24:05.510 に答える
3

実際、他の回答ではここで言及されていない別の方法があります。

より新しい(VS 2008と同じまたはそれ以降のリリース日)SDKをインストールしてVS 2005と統合する場合は、それも解決されます。(または同等のパス)に移動して、ファイルを最新のVS、WDK、またはSDKのファイルにC:\Program Files\Microsoft Visual Studio 8\VC\bin置き換えることもできます。rcdll.dllrc.exe

補足:バージョンrcdll.dllrc.exe 一致している必要があります。つまり、ソース(VS、WDK、SDK)から両方を同時にコピーする必要があります。私にとっては、6.0または6.1以降のすべてのバージョンが機能しました。これは、VistaSDKおよびVSバージョン以降に付属するコンパイラから始まるバージョンです。

于 2013-12-06T02:38:57.503 に答える
1

このエラーRC2176につながる2つの状況が実際に発生しました。
ご存知かもしれませんが、Windows .ICOファイルには、さまざまなサイズと色深度の複数の画像を含めることができます。VS2005は、少なくとも2つの状況でこのエラーをスローします(DIBとは関係ありません)

  1. アイコン内の.PNG画像(Codejoyの回答で説明されているように)
  2. アイコン内の256x256以上の画像

GIMPを使用して最大画像サイズを128x128に縮小し、.PNGを回避することで、この問題はVS2005で解決されます。または、新しいVSにアップグレードします;)

于 2013-02-20T16:25:46.610 に答える
1

VS2012でこの問題が発生しましたが、グーグルで検索しましたが、sdk-paintで開くことについて説明しているMSDNサイトへのリンク以外は見つかりませんでした。そのため、私のプロジェクトでは、エラーの原因となったアイコンをダブルクリックし、 PNG形式を削除し、出来上がりプログラムを開始しました。

グリーツ

リチャード

于 2014-06-05T20:28:34.490 に答える
1

圧縮/パックされた256x256が私にとっての問題でした。アイコンエディタアプリで(Vistaの場合)圧縮として保存するオプションのチェックを外すと、問題は解決しました。

于 2017-05-04T12:10:52.813 に答える
0

エラーを引き起こした別の状況があります。それは破損したPNGファイルです。このコマンドを使用してsed、プロジェクトフォルダー内の一部の文字列をグローバルに置き換えましたが、UNIXで終わる(見た目が良い)Windows行が置き換えられたため、画像ファイルが破損していました。

そのため、MFCライブラリのPNGパーサーにいくつかのバグがあり、不正な形式の入力ファイルを処理できない可能性があります。

于 2015-07-13T05:41:32.747 に答える
0

私が遭遇した最高の解像度は、非圧縮のPNG形式でICOファイルを保存するためのガイダンスを提供するAxialisからのものです。 https://www.axialis.com/docs/iw/How_to_use_a_Windows_Vista_Compressed_Icon_in_a_Software_Project.htm

于 2019-10-28T18:01:14.650 に答える