2009-06-21 6 views
2

VS2008にはほとんどがPNGイメージを含むリソースDLLプロジェクトがあります。新しいイメージをリソースファイルにインポートするたびに、RC2170エラーが発生します。以前はリソースファイルにあったすべてのPNGについて、ビットマップファイルは3.0形式ではありません。Visual Studio 2008のリソースエディタはPNGで厄介です

私は新しい画像を追加する前に、それらのすべてのことを了解しました。リソースファイルからこれらのイメージをすべて削除してから再びインポートしても、それはコンパイルされます。

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

誰もが何か類似した経験がありますか?どんな解決策ですか?

BTW:実際にPNGファイルを画像として認識する必要はありませんが、これで解決できる可能性があります。

答えて

1

リソースエディタは、PNGイメージを直接サポートしていません。

IDI_BACKGROUND RCDATA "background.png" 

次に、GDI +を使用してリソースファイルから読み込むことができます。

3

this threadによるとこれは、this article(C++)で説明され、あなたが変化し、リソースエディタのバグの経験です:

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

しかし、注意してください:これらのPNGリソースをLoadImage()によって呼び出されたとき、VistaのOS以前にはロードされていないようです。このリソースタイプを使用すると、アプリケーションがVistaに制限されることがあります。

+0

はい、rcファイルで手動でBITMAPをPNGに変更すると問題は解決します。 – bialix

1

私はこれで苦労しましたが、(少なくともVisual Studio 2012では)リソースとして簡単にpngファイルを追加できることがわかりました。リソースビューで、.rcファイル名を右クリックし、[リソースの追加]を選択します。 「ビットマップ」を選択し、「インポート」をクリックします。必要な.pngファイルを選択します。「PNG」というリソースリストに新しいセクションを追加し、BITMAPリソースと同じように動作させる必要があります。もしそうなら、あなたのpngファイルのコピーを.bmp拡張子で保存するか、ビットマップとして保存して、上のようにビットマップとして追加してください。リソースファイルを編集すると、次のような行が表示されます:

IDB_NEWFILE BITMAP "NewFile.bmp"

IDB_NEWFILE PNG "NewFile.png"

と、ファイルを保存するために変更して。あなたが見て次の時間プロジェクトのリソース 'PNG'セクションが作成されている必要があります(コメントヘッダー付きでも)

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

関連する問題