Movatterモバイル変換


[0]ホーム

URL:


コンテンツにスキップ
Wikipedia
検索

Windows Template Library

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Windows Template Library
開発元Microsoft
最新版
10.0.10320 /2020年11月16日 (5年前) (2020-11-16)
リポジトリウィキデータを編集
プログラミング
言語
C++
対応OSMicrosoft Windows
種別ライブラリ
ライセンスCommon Public License /Microsoft Public License
公式サイトsourceforge.net/projects/wtl/
テンプレートを表示

Windows Template Library (WTL) はマイクロソフトによるWin32をラップ(カプセル化)するオブジェクト指向C++ライブラリ。WTLはプログラマが利用するAPIの1つである。MFCの軽量な代替として開発された。WTLはマイクロソフトのATLCOMActiveXのためのもう1つの軽量API)を拡張する。

概要

[編集]

WTLは、小さくて高速なコードという大きな利点のあるATLに対して、アプリケーションや様々なUIコンポーネントの両方のために、より複雑なユーザーインターフェイスをサポートするようにATLを拡張するクラスのセットである。WTLのクラスは、ATLベースのアプリケーション、サーバ、コンポーネント、コントロールに対して、リッチなWin32ベースのUIを実装するための最適かつ簡単な方法であるように設計された。

WTLは、フレームやポップアップウィンドウを初めとして、MDI、標準・コモンコントロール、コモンダイアログ、プロパティシートやページ、GDIオブジェクト、UIのアップデート、スクロールバーウィンドウ、スプリッターウィンドウ、コマンドバーなど、様々なユーザーインターフェイスの要素をサポートする。WTLのクラスは主にテンプレートであり、最小限のインスタンスデータとインライン関数を使う。これらはフレームワークとしてデザインされたものではないため、特定のアプリケーションモデルを強制せず、どのようなスタイルでも受け入れられる。クラスはフックやスレッドローカルのメモリ領域を利用しないのでこれらのテクニックの押しつけに制約されない。これらには従属関係が無く、ストレートなSDKのコードと自由に混ぜることができる。要するに、WTLは、より論理的でオブジェクト指向的なモデルをプログラマに提供しつつも、SDKによるプログラムと比べてもサイズとスピードでほとんど遜色のない非常に小さくて効率的なコードを出力する。

WTLの多くのAPIは標準のWin32と直接的に対応しており、多くのWindowsプログラマーにとってなじみの深いインターフェイスである。しかしながらマイクロソフトによる公式のドキュメントは存在せず、この問題に立ち向かうため"WTL Documentation"プロジェクト[1]がスタートしたが、現在[いつ?]でもまだドキュメントは完全ではない。

歴史

[編集]

マイクロソフトは2004年5月、オープンソースライセンスに基づいてWTLのソースコードを自由に利用できるようにした。マイクロソフトはSourceForge.netというインターネット上のオープンソースコードのためのリポジトリにソースコードを投稿し、Common Public Licenseに基づいてリリースした。このライブラリはバージョン7.5の時点で、Microsoft Permissive Licenseとのデュアルライセンスでもあった[2]

プログラム例

[編集]

Hello worldを表示するプログラムである。

#include<windows.h>// ATLヘッダー。#define _ATL_NO_AUTOMATIC_NAMESPACE#include<atlbase.h>#include<atlwin.h>// WTLヘッダー。#define _WTL_NO_AUTOMATIC_NAMESPACE#include<atlapp.h>#include<atlcrack.h>classHelloWindow:publicATL::CWindowImpl<HelloWindow>{public:// ウィンドウクラス名を登録。DECLARE_WND_CLASS(TEXT("HelloWindow"));private:// メッセージマップ。BEGIN_MSG_MAP(HelloWindow)MSG_WM_PAINT(OnPaint)MSG_WM_DESTROY(OnDestroy)END_MSG_MAP()// 描画メッセージのハンドラー。voidOnPaint(HDC){WTL::CPaintDCdc(m_hWnd);dc.TextOut(10,10,TEXT("Hello, world"),-1);}// ウィンドウ破棄メッセージのハンドラー。voidOnDestroy(){PostQuitMessage(0);}};intWINAPIWinMain(HINSTANCE,HINSTANCE,LPSTR,intnCmdShow){// ウィンドウのインタンスを生成。HelloWindowwnd;if(!wnd.Create(NULL,ATL::CWindow::rcDefault,TEXT("Hello, world"),WS_OVERLAPPEDWINDOW)){return-1;}// ウィンドウ表示。wnd.ShowWindow(nCmdShow);wnd.UpdateWindow();// メッセージループ。WTL::CMessageLoopmsgLoop;returnmsgLoop.Run();}

関連項目

[編集]
ポータル コンピュータ

外部リンク

[編集]
マイクロソフトのAPIとフレームワーク
グラフィック
オーディオ
マルチメディア
ウェブ
データアクセス
ネットワーク
コミュニケーション
管理
コンポーネントモデル
ライブラリ
デバイスドライバ
セキュリティ
.NET
ソフトウェアファクトリー
IPC
アクセシビリティ
テキストと多言語
サポート
人工知能
低レベル
高レベル
AmigaOS対応
Mac OS/macOS対応
Windows対応
X11下のUnix対応
言語別
クロスプラットフォーム
CLI
C/C++
Objective-C
Flash
Java
デスクトップ
ウェブ
JavaScript
Common Lisp
Object Pascal
Perl
PHP
Python
Ruby
XML
スタブアイコン

この項目は、ソフトウェアに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めていますPJ:コンピュータ/P:コンピュータ)。

https://ja.wikipedia.org/w/index.php?title=Windows_Template_Library&oldid=107375485」から取得
カテゴリ:
隠しカテゴリ:

[8]ページ先頭

©2009-2026 Movatter.jp