2

VS2008 に、主に PNG 画像を含むリソース DLL プロジェクトがあります。新しい画像をリソース ファイルにインポートするたびに、RC2170 エラーが発生します。以前にリソース ファイルにあったすべての PNG について、ビットマップ ファイルは 3.0 形式ではありません。

つまり、新しい画像を追加する前に、これらの画像はすべて正常に準拠しています。これらのイメージをすべてリソース ファイルから削除し、(変更せずに) 再度インポートした後でのみ、コンパイルされます。

この動作は、新しい PNG ファイルが追加されるたびに繰り返され、PNG ファイルの数が増えるにつれて、ますます煩わしくなります。

誰かが似たようなことを経験しましたか? 解決策はありますか?

ところで:これが解決される場合、PNGファイルを画像として認識するためにリソースエディターは実際には必要ありません。

4

3 に答える 3

4

このスレッドによると、リソース エディターで次のようなバグが発生しています。

IDI_DENTIFIER PNG "background.png"
に:
IDI_DENTIFIER BITMAP "background.png"

ただし、注意してください: これらの PNG リソースは、LoadImage(). このリソース タイプを使用すると、アプリケーションが Vista に制限される場合があります。

于 2009-11-18T08:29:20.853 に答える
1

私はこれに苦労しましたが、(少なくとも Visual Studio 2012 では) png ファイルをリソースとして簡単に追加できることがわかりました。リソース ビューで、.rc ファイル名を右クリックし、[リソースの追加] を選択します。「ビットマップ」タイプを選択し、「インポート」をクリックします。必要な .png ファイルを選択します。「PNG」という名前の新しいセクションがリソース リストに追加され、BITMAP リソースと同様に機能するはずです。

私はこれが時々失敗するのを見てきました - もしそうなら、あなたのpngファイルのコピーを.bmp拡張子で保存して(またはビットマップとして保存して)、それを上記のようにビットマップとして追加してください。リソース ファイルを編集すると、次のような行が表示されます。

IDB_NEWFILE BITMAP "NewFile.bmp"

に変更します

IDB_NEWFILE PNG "NewFile.png"

ファイルを保存します。次にプロジェクトのリソースを見ると、'PNG' セクションが作成されているはずです (コメント ヘッダーがあっても!)

しかし、私が知る限り、透過性を持つ png ファイルは正しく表示されないか、(ボタンなどに) 読み込まれたときにクラッシュが発生します。

于 2014-07-16T14:22:47.457 に答える
1

リソース エディターは、PNG 画像を直接サポートしていません。次のようなバイナリ ファイルとして追加する必要があります。

IDI_BACKGROUND  RCDATA    "background.png"

次に、GDI+ を使用して、リソース ファイルからそれらをロードできます。これは、この記事で説明されています(C++)

于 2009-06-21T21:32:21.280 に答える