ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.4015827 CImageクラスをVisualC++6.0で使いたいのですが
質問者:jeddom CImageクラスを使うには atlimage.h をインクルードする必要がありますが、atlimage.h がオープンできないというエラーが出ます。VisualC++6.0だと使えないのでしょうか。
.NETでは無事コンパイルできました。しかし.NETが入っているのは会社のパソコンなので、できれば自宅の6.0でやりたいです。

6.0でCImageクラスを使う方法はないでしょうか?
もしくは、他にPNG画像の読み込み・表示ができるクラスはないでしょうか?
分かる方、どうか教えてください。
困り度:
  • 困っています
質問投稿日時:
08/05/12 02:26
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.2 VC.NET2002以降をお持ちで MFCのソースがあるなら

VCのインストールフォルダーの下の
atlmfc\include\atlimage.hやatlmfc\src\atls\atlimage.cpp,atlimage2.cppなどを参考に移植しましょう

CImageクラスは GDI+の単なるラッパーですよ
GDIPlusStartupやReleaseGDIPlusをオブジェクトの構築・破棄で呼び出しながら GDI+のメンバーをMFCクラスのようにしてあるだけです
マルチスレッドでも安全に呼び出せるような仕掛けがしてはありますが・・・

VC6.0付属のMSDNの英語版解説の『Graphics and Mulimedia』の下の『GDI+』を参照してみましょう
なお VC6のインストールCDなどは結構古めのPlatformSDKなので
『Windows Server 2003 SDK』などをインストールしたほうがいいでしょう
GDIPLUS.Hはインクリュードパスに無かったりします

PNGを扱えるDLLなら vectorあたりで検索すれば見つかると思いますよ
Webで『PNG DLL C/C++』などをキーワードに検索してもそこそこの情報は取得出来そうですよ
ソースつきのライブラリーなんかもありそうです
回答者:redfox63
種類:アドバイス
どんな人:専門家
自信:参考意見
回答日時:
08/05/12 03:22
この回答へのお礼なるほど、DLLですが。思いつきませんでした。(汗)
探したらありました。
ご回答ありがとうございます。

回答

ANo.1 CImageがMFCに追加されたのは、MFC7以降です。
VC6の頃はMFC6ですので、CImageはありません。

自分で「GDI+」を使えばいけるのではないでしょうか。
調べてみてください。
回答者:MrBan
種類:回答
どんな人:専門家
自信:参考意見
回答日時:
08/05/12 03:05
この回答へのお礼手元の参考書にはビットマップリソースの表示方法しか載ってないもので・・・
今はフリーのDLLに頼ることにします。
ご回答ありがとうございました。