11

「WTLはATLに基づいて構築されている」ことは知っていますが、実際にはどういう意味ですか?

ATLは機能の点でWTLのサブセットですか?(つまり、ATLのすべての機能はWTLにも存在しますか?)ウィキペディアでは、ATLの開発ステータスは「現在」であるのに対し、WTLの最新リリースは2009年半ばからであると述べています。つまり、Glass /Aeroやその他のWindows7機能を使用してWindows7ソフトウェアを作成したい場合、WTLでは作成できません。ATLはどうですか?

ATLとWTLでプログラムを作成する際のパフォーマンス/メモリの違いはありますか?

4

3 に答える 3

16

ATLは、主にCOMベースを実装するMicrosoftC++ライブラリです。その一部はActiveXコントロール(ライブラリ全体の主な目標ではありません)も対象としており、HWNDCWindowクラス)のシンラッパー、文字列操作クラス、、、、CStringANSI /Unicode変換などの関連するものもカバーしています。CStringACStringW

ATLの一部は、CodePlexでホストされているオープンソースのATLサーバーライブラリに分岐しました。それに関するいくつかのドキュメントは、MSDNでATLバージョンをVisualStudioバージョン2002/2003/2005に戻すことを選択して見つけることができます。これは主にWeb開発、IISのものをカバーし、正規表現なども含みます。

WTLは元々ATLで使用されることになっており、一般的なコントロール、GDIオブジェクト、アプリケーションGUIフレームワーク、フレーム/ビデオモデル、カスタムコントロールのシンラッパーなど、GUI関連の側面をカバーしています。これは、ATLが開始する前にクラスを提供しCStringました。これは、2つのライブラリが重複するものの1つです。WTLがオープンソースになり、Microsoftが無料バージョンのVisual Studioを提供した後、WTLも更新され、ATLなしで使用できるようになり、無料のツールのみを使用してアプリを構築できるようになりました。

于 2011-10-19T06:23:59.643 に答える
8

はい。WTLはATLに基づいています。ただし、ATLを呼び出すにはサブセットが正しくありません。ATLは、WindowsOSでのプログラミングのMFCアプローチに代わるテンプレートベースの代替手段として独自に機能します。コードの膨張ははるかに少なくなります。ATLは、実際のウィンドウやダイアログなどを除いて、ほとんどすべてを処理します。

WTLは、ATLが他のWindowsサービスの代替を提供するのと同じように、MFCウィンドウモデルの代替テンプレートです。WTLにはATLが必要です。その逆ではありません。

codeprojectに関するDunnの記事は、WTLのかなり良いレビューを提供します。

MFCプログラマー向けのWTL、パートI-ATLGUIクラスはシリーズの最初のものです。シリーズの他の記事へのナビゲーションリンクは、それぞれの下部にあります。

于 2012-11-09T18:21:09.120 に答える
2

ATLは、ActiveXコントロール、つまり独立したアプリケーションに存在するコントロール用に作成されました。WTLは、アプリケーション自体にクラスを提供することにより、ATLの穴を埋めることを目的としています。それらは一緒に使用することを目的としています。

于 2011-10-19T04:19:24.547 に答える