SDKとMFC

VisualC++でプログラムを作る場合、大別して二種類の方法があります。
SDKで作る方法とMFCで作る方法です。

SDKというのはSoftware Development Kitの略でWindowsのAPIを直接
使ってプログラミングする方法を言います。SDKでのプログラミングは
細かい部分まで自分でコーディングする必要があり多少面倒ですが、
比較的理解しやすいと思います。

これに対してMFCというのはMicrosoft Foundation Classの略で
マイクロソフトのクラスライブラリを使ってプログラミングする方法です。
MFCはWindowsのAPIをクラスライブラリ化したもので面倒な部分は内部で
勝手にやってくれるため非常に楽ですが、内部でなにをやっているのか
わからない人には理解しにくいという欠点があります。

たとえば、勝手にやってくれている部分をほんの少し変更したい場合
どこをどう変更すればいいのかさっぱりわかりません。また、プログラムが
どこから始まるのかわからないのも初心者を迷わせる原因でしょう。
(MFCだとWinMain()関数がソースコードにありません)

市販されている解説書などではほとんどがMFCを使ったやり方を
解説しているんじゃないかと思います。プロジェクトを作成するときに
「MFC AppWizard (exe)」を選ばせているなら間違いなくMFCです。

ですがMFCを使うのなら、最低限

・C++のクラスの概念
・クラスの継承
・Windowsプログラムの動作の仕組み(イベントドリブン)

を理解しておく必要があると思います。

以上の理由から初心者にはSDKでプログラミングすることをお勧めします。
また、Windowsプログラムの内部構造を理解するという意味で、他の言語を
使う人にもお勧めします。

余談ですがSDKで作ったプログラムはサイズがコンパクトで動作が高速です。
また余計なDLLなども不要なため作ったプログラムを配布したい場合非常に
便利です。特にVC++のLearningEdition/StandardEditionではMFCの静的リンク
ができないため、MFCで作るとMFCのDLL(約1MB)を一緒に配布しなければ
プログラムが動作しません。

戻る