ATLおよびWTLはその名の通りC++テンプレートをベースにしており、
オーバーヘッドが非常に低いという特徴があります。
また、MFCのような共有DLLを別途必要としません。
以下に、ウィンドウ中央に「Hello, World」と表示するだけの簡単なプログラムの、
実行ファイルサイズ(スタティックリンク版)を比較した表を示します。
すべて「Win32 スマート デバイス プロジェクト」で作成し、
プロジェクトのプロパティで[ランタイム ライブラリ]を[マルチスレッド (/MT)]に設定します。
MFCの場合だけ[MFC の使用]を[スタティック ライブラリで MFC を使用する]に設定し、
[エントリ ポイント]を[WinMainCRTStartup]に設定します。
残りの設定はデフォルトのままです。
ATL/WTLプログラミングではMFCと違い、WinMain()を隠蔽せず、Document/Viewアーキテクチャでもありません。
しかし、ATL/WTLで使われるクラスのメンバ関数名などは、MFCのメンバ関数名と同じものが多々あります。
それゆえ、SDKスタイルのWindowsプログラミングとMFCの両方の経験があるとより理解しやすいでしょう。
なお、本ドキュメントはそれらの基本的な知識があることを前提としています。
最後に、本ドキュメントの作成はATL/WTLおよび Windows Mobile プログラミングの学習と同時進行であるため、
更新は不定期で行われることをご了承ください。また、できる限り情報の正確性に注意を払う
つもりですが、必ずしもその内容を保証するものではありません。
なお、本ドキュメントでは、プログラムの動作確認をデバイスエミュレータで行い、
対象OSは Windows Mobile 6/6.1/6.5 Professional を想定しています。
実機によっては動作が異なる可能性があります。
|