ATL/WTL C++ Windowsプログラミングの紹介
C++を使ったWindowsプログラミングといえば,MFCを使ったものが標準ですが,DLLとかが必要だったり,プログラムサイズが大きくなったり,使用するメモリ量が多いので,軽量な配布しやすいプログラムを作成しにくい。
ATLは,COMプログラミングのために用意されたテンプレートクラスライブラリ。
(COMとは・・・下記参照)
Visual C++標準のATLではウインドウアプリケーションを作成できない。しかし,WTLというのをダウンロードしてVisual C++に入れてやると,ATLにウインドウアプリケーションの作成部分の機能が追加される。
C++を使って軽量なWindowアプリケーションを作れる様になる。
Win32APIをC言語で書くよりもコードが少なく,C++のオブジェクト指向でプログラムが作成できる上に,プログラムサイズもMFCを使うよりもコンパクトに仕上がる。
知っていると結構得します。C++でWindowsプログラムを気軽に書きたい。という人におすすめ。もちろん,大規模なアプリケーションの作成も出来ますよ。
ちなみに,ATLは,C++の悪名高き多重継承を当たり前の様に使う。
テンプレートも多様されています。
※多重継承やテンプレートの知識が少なくても十分使えます。
COMが分からなくても,使えます。
WTL自体は,結構昔からあるのですが,マイクロソフトの正式サポートではないので情報が少ない。そのため多少苦労しますが,それでもWin32APIをC言語で使うよりはましな感じがします。
クラスはMFCとそっくりなので,クラスのメンバ関数の使い方はMFCのリファレンスマニュアルでいけるでしょう。
MFCプログラミングをしたことがあるひとならば,すぐに使いこなせるでしょう。
詳しくは,WTLで検索をかけてください。
わずかですが,WTLについて解説したページがあります。
参考・詳細URL:
http://msdn.microsoft.com/msdnmag/issues/07/12/WindowsCPP/default.aspx?loc=jp
Windows Template Library (WTL)最新( 8.0 )
http://sourceforge.net/projects/wtl
—————
補足:
COMとは・・・
Windowsで用意されたプログラム部品の仕組み。
オブジェクト指向がとりいれらていて,プログラミング言語に依存しないオブジェクト(プログラムの部品)である。
IUnknowインターフェースを継承したインタフェースを実装するオブジェクト。
いまいち分かりにくいので,具体的には以下の様なものがCOMで提供されている。
DirectXのラインタイム。
Webページ組込みオブジェクトのActiveXオブジェクト(自作を含む)
Visual Basicで使えるコンポーネント(フォームの部品。ボタンとか)
APIみたいなものだが,APIは関数なのに対して,COMは,オブジェクトを作成取得して,別のプログラムの部品(オブジェクト)として使える。