ページ 11

atlimage.hが無い!?

Posted: 2012年2月05日(日) 05:25
by おならちゃん。
画像を読み込んで、デスクトップに描画するプログラムを組もうと思ったので、そこで、画像の読み込む方法を探していたところ、Cimageなるものを見つけました。
なので、サンプルプログラムをコピーして実行をしてみようと思いました。
まずそこで、予想した結果は何もならないけどエラーも出ないと思っていたのですが、
include ファイルを開けません。'atlimage.h':No such file or directory
というエラーがでてしまいました。
これは、ヘッダーファイルが無いのだとわかりましたがどのようなファイルをどのように埋め込む?のかがわかりませんでした。
調べたところ、Cstringを定義してください。というようなのがヒットしましたが、
文字列云々と書いてあったので、ヘッダーファイルじゃないなら関係ないと思ったのですが、これは関係ありますか?
______________________________
http://msdn.microsoft.com/ja-jp/library/bwea7by5.aspx
から参照しました。
CImage を使用しているプロジェクトでは、atlimage.h をインクルードする前に、必ず CString を定義してください。ATL を使用し、MFC を使用しないプロジェクトでは、atlimage.h より先に atlstr.h をインクルードします。MFC を使用するプロジェクト (または MFC にも対応している ATL プロジェクト) では、atlimage.h より先に afxstr.h をインクルードします。

同様に、atlimage.h は atlimpl.cpp より先にインクルードする必要があります。これを行うには、stdafx.h 内で atlimage.h をインクルードする方法が簡単です。
_______________________________
先にaflstr.h や afxstr.hをインクルードするとかいてあったのでやってみたところ、aflstrを先にincludeしたときは、aflstrのヘッダーファイルがありません。というエラーがでましたし、同様にafxstr.hもなりました。

僕が使っているコンパイラはVC++ 2008です。
直す方法と、ご説明をしていただけるととてもありがたいです。
よろしくお願いします。
[code#include <atlimage.h>

int main(){
Cimage image;

image.Attach(hBitMap);
image.Save(L"c:\\test.bmp");
image.Save(L"c:\\test.jpg");
image.Detach();

return 0;
}][/code]

Re: atlimage.hが無い!?

Posted: 2012年2月05日(日) 08:38
by non
EXPRESS EDITION ってことはないですよね。

Re: atlimage.hが無い!?

Posted: 2012年2月05日(日) 08:40
by みけCAT
http://victreal.com/Junk/_T/index.html
ここの「ユニコード文字列からマルチバイト文字列への変換」のところにある
「互換ライブラリ」を試してみてください。ページの下の方にあります。
※自分では試していません

Re: atlimage.hが無い!?

Posted: 2012年2月05日(日) 09:26
by softya(ソフト屋)
CImageやCStringはMFC/ATLのクラスなので少なくとも無料版のVisualC++2008ExpressEdtionでは利用できません。
有料版のVisualStudio2008StandardEdtion以上を利用している必要があります。
それとC++のクラスなのでC++を理解している必要もあります。

codeタグを使い方を失敗しているので必ずプレビューして確認の上投稿してくださいね。あとCimageではなくCImageです。

[追記]
あとで気づきましたがMFCフレームワークの中でしか使えない可能性が高いです。つまり、プロジェクト自体がMFCである必要があります。

Re: atlimage.hが無い!?

Posted: 2012年2月05日(日) 12:21
by おならちゃん。
すみません。Extraedition です (汗)
知りませんでした。Orz ほかの方法を探して見ます。
たくさんの御回答ありがとうございました。

Re: atlimage.hが無い!?

Posted: 2012年2月05日(日) 12:43
by softya(ソフト屋)
CImageはGDI+をラップしたものなのでGDI+を直接使う事はExpressEdtionでも出来ます。ただし言語仕様的にはC++です。
「第335章 GDI+の基礎 その1 」
http://www.kumei.ne.jp/c_lang/sdk4/sdk_335.htm
限定的な使用ならC言語の知識でも使えると思います。
「GDI+ グラフィック」
http://msdn.microsoft.com/ja-jp/library ... s.71).aspx

Re: atlimage.hが無い!?

Posted: 2012年2月07日(火) 11:40
by おならちゃん。
解決後までヒントをくださってありがとうございます。
挑戦しようと思います!!