「Windows API/画像の操作」の版間の差分

削除された内容 追加された内容
→‎画像ファイル出力: CImageを使うには、MFCというものをインストール
327 行
 
CImageを使うには、"MFC"というものをインストールする必要がある。標準では、MFCはインストールされていないので、Visual Studioのインスト-ラでMFCビルドツールを追加インストールする必要がある。もし
<syntaxhighlight lang=c>
#include <afxwin.h>
を書いてエラーになるようなら、MFCがインストールされていないので、プログラミングにおけるCImageの利用のためにはMFCビルドツールをインストールしなければならない。
</syntaxhighlight>
を書いてエラーになるようならMFCがインストールされていないので、プログラミングにおけるCImageの利用のためにはMFCビルドツールをインストールしなければならない。
 
 
 
MFCをどういう方法で使うかによってinclude方法が異なる可能性はありますが、おおむね冒頭のinclude文で、
<syntaxhighlight lang=c>
#include "stdafx.h"
#define _AFXDLL
#include <afxwin.h> // MFC に必要
#include "atlimage.h" // CImage に必要
</syntaxhighlight>
 
のように宣言する必要が生じるかと思います。Windowsの実装上の都合により、<code>_AFXDLL</code> という定数のdefine命令が必要になります。
 
このほか、ソリューションのプロパティ設定により、
:『構成プロパティ』>『詳細』>『MFCの使用』>『スタティック ライブラリで MFC を使用する』と設定したり、
:『構成プロパティ』>『C/C++』>『コード生成』>『ランタイムライブラリ』>『マルチスレッド DLL(/MD)』と設定したり、
する必要があるかもしれません。
 
どうプロパティ設定するかは用途によって個々人で違う可能性があるので、コンパイラのエラーメッセージなどを参考に都度、ネット検索などで調べてください。
 
MFCは元来、今まで習ってきた「Windowsデスクトップアプリケーション」でプログラミングするようにはできておらず、このため、「Windowsデスクトップアプリケーション」で扱う際に必要になる設定がなかなか難しいのが難点です。
 
ビルド時に windows.h が 2回読み込まれてエラーになってコンパイルができない場合があるので、その場合は stdafx.h ファイルにある <code> #include <windows.h> </code> を、コメントアウトして
<syntaxhighlight lang=c>
// #include <windows.h>
</syntaxhighlight>
のようにする必要があるかもしれません。