需求推动了技术的发展,从MFC到ATL,从ATL再到WTL的发展历程我想就是一个最好的见证。
早期的VC++开发者们发现了MFC(Microsoft Foundation Classes) 这样一个好东东。他们发现,MFC提供了一个强大的类库,很好的满足了面向对象编程的需要。随着泛型编程技术的发展和时间的推移,慢慢地,他们慢慢觉得MFC的类库过于庞大和宽泛,而且它提供的模板库只覆盖了很有限的领域。于是,ATL应运而生。
ATL(Active Template Library),简称活动模板库。ATL的设计者们通过它来它提供快速的COM组件封装。ATL很好地体现了用模板进行编程的思想。如果模板设计得当,就很容易灵活的适应各种不同的需求,而且更容易跟进新技术的发展需求。
但是,作为泛型编程的爱好者们始终要面对的一个主要难题,那就是如何方便地进行图形用户界面(GUI)设计。因为ATL只是提供了对Win32/64窗口的低级封装,因此ATL的使用者们在用ATL进行COM开发的同时,不得不借助于MFC来进行COM组件的UI编程。因为在GUI方面,ATL确实是爱莫能助。
WTL(Windows Template Library)在体现模板编程思想的同时,对模板进行了很好的高级封装,很好的满足了UI编程的各种需求。这也是WTL设计者们的用意所在。在用WTL生成应用程序的时候不需要将DLL文件与EXE文件一起交付给用户,而且,WTL又有很好的兼容性。你可以将它与ATL, STL, VC++ 数据模板,第三方模板,或者你自己的模板这几种中的任何一种一起使用。正因为这些特点,使得当前WTL成为了大部分高级的C++开发者们进行UI设计时的首选。
从代码的层面比较WTL与ATL
Win32/64 API 是由一系列C函数构成的集合,它覆盖了COM和Window编程的大部分领域。ATL是一系列的C++模板集,大部分是为COM编程服务的。Win32/64 API和ATL都只是提供了对于UI编程的低级支持。如ATL,WTL也是C++模板集,但是它很纯粹地集中于对UI编程的高级支持。
WTL的功能体现和优势.
WTL当前是第二个版本,第一个是3.1版,第二是7.0版。WTL的功能主要体现在以下几个方面:
· 提供应用程序框架
· 提供对UI的高级支持
· 封装Window控件,系统对话框以及GDI对象
它的优势体现在:
不包含复杂的文档/视图框架
具有源于MFC的基本的UI特性
提升了一些MFC的特性(例如,更加灵活的切分窗口)
比静态链接MFC的代码要小的多
可对WTL进行bug修正,而不影响已存在的应用程序(MFC中如果通过替换MFC/CRT的DLL来修正一个应用程序中的bug,往往会是另一应用程序崩溃)
分享到:
相关推荐
WTL for MFC Programmers, Part I - ATL GUI Classes - WTL WTL for MFC Programmers, Part II - WTL GUI Base Classes - WTL WTL for MFC Programmers, Part III - Toolbars and Status Bars - WTL WTL for MFC ...
如何获取ListView点击的单元格域的项目源码,需要vs2010以上编译。博客文章所在https://blog.csdn.net/infoworld/article/details/131106482
Atl_WTL是一个Windows用户界面(UI)库,它是Active Template Library (ATL)的一个扩展,专为构建轻量级、高效的应用程序而设计。相对于Microsoft Foundation Class (MFC)库,WTL更小且更快,提供了更为直接的...
- `mfcatl.cpp` 和 `mfcatl.h`: 可能是MFCATL主程序的实现和头文件,提供MFC与ATL的集成。 - `objone.cpp`, `objone.h`, `objtwo.cpp`, `objtwo.h`: 这些文件可能分别包含了两个不同的ATL COM对象的实现和接口定义...
WTL 具有两面性,确实是这样的。它没有MFC的界面(GUI)类库那样功能强大,但是能够生成很小的可执行文件...当然,如果你也象我一样不希望自己的程序仅仅因为使用了MFC的框架就增加几百K的大小的话,WTL就是你的选择。
- 讨论了ATL和WTL的历史发展,以及它们是如何逐步演进成为现代Windows应用开发的重要组成部分。 - **1.2.2 ATL风格模板** - 解释了ATL中的各种模板如何帮助开发者更高效地创建和管理用户界面。 - 包括了窗口类、...
学习com时,免不了提到ATL,学习WTL,也免不了会看到ATL、COM。 现在把这些资料打个包,以供学习,此包包括: COM技术内幕 COM原理与应用 Essntial COM 《com原理与应用》源代码 ATL开发指南 Inside ATL WTL ...
《深入理解duilibTreeView:ATL、WTL与MFC的融合应用》 在软件开发领域,用户界面(UI)的设计和实现至关重要。duilibTreeView是这样一款组件,它为开发者提供了一种高效且灵活的方式来构建树形视图,特别适用于...
WTL是微软为C++开发人员设计的一个轻量级库,它扩展了 ATL(Active Template Library)的功能,专注于Windows GUI应用程序的开发。WTL通过模板类和宏简化了对Windows API的调用,使得开发者可以更快速、更高效地构建...
MFC程序员的WTL指南,中文翻译版本,原文链接https://www.codeproject.com/Articles/3841/WTL-for-MFC-Programmers-Part-I-ATL-GUI-Classes。
**MFC**(Microsoft Foundation Classes)是另一种广泛使用的Windows应用程序框架,相比于WTL,MFC提供了更多的功能和更高级别的抽象,如对话框、文档视图架构等,但它也带来了更大的代码体积和运行时开销。...
ATL与MFC(Microsoft Foundation Classes)相比,更适合于构建小型、快速的COM组件。而MFC则更倾向于提供完整的用户界面框架。因此,根据项目需求,选择适合的开发工具是非常重要的。 总之,ATL是一种强大的工具,...
了解这些历史背景有助于理解现代Windows开发中ATL的演变和地位。 通过阅读“深入解析ATL中文版--潘爱民译”,开发者不仅可以掌握ATL的基本用法,还能了解到ATL在实现高效、低开销COM组件方面的高级技术和实践经验,...
本教程和源代码集合主要面向已经熟悉MFC(Microsoft Foundation Classes)的开发者,旨在帮助他们过渡到使用ATL和WTL进行Windows程序设计。 首先,让我们深入了解ATL。ATL是一个模板库,它的设计目标是提供一个高效...
根据提供的文件信息,这份《Atl---ian-Atl---ian数据中心终极指南-2020.12-26页精品报告2020.pdf》是关于Atl---ian公司提供的企业级数据中心解决方案的详细报告。报告内容涵盖了产品介绍、迁移指南、升级指导、功能...
这个“ATL开发指南”是一份专为C++开发者设计的中文参考资料,旨在帮助他们深入理解和高效利用ATL进行软件开发。下面我们将详细探讨ATL的核心概念、主要功能以及如何使用ATL来构建COM组件。 ATL的核心概念: 1. **...
该指南旨在帮助MFC程序员学习和使用WTL,提供了详细的教程和示例代码。 1. WTL 简介 WTL 是一个开源的库,由微软公司开发,提供了一个功能强大且灵活的框架,用于构建Windows应用程序。WTL 的主要特点是使用模板来...
自ATL 2.0版本开始,虽然ATL提供了一些简单的封装类,如`CWindow`、`CWindowImpl`和`CDialogImpl`来处理窗口相关的Win32 API调用,但相比MFC所提供的丰富的界面编程支持而言,ATL显得相对简陋。 #### WTL的发展背景...