MFC,ATL,WTL的历史沿袭
来源:互联网 发布:淘宝虚抬专柜价 编辑:程序博客网 时间:2024/06/05 07:28
需求推动了技术的发展,从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编程的高级支持。
如下图所示,ATL调用Win32/Win64 API ,WTL调用ATL模板和Win32/Win64 API 。
WTL的功能体现和优势.
WTL当前是第二个版本,第一个是3.1版,第二是7.0版。WTL的功能主要体现在以下几个方面:
· 提供应用程序框架
· 提供对UI的高级支持
· 封装Window控件,系统对话框以及GDI对象
它的优势体现在:
- 不包含复杂的文档/视图框架
- 具有源于MFC的基本的UI特性
- 提升了一些MFC的特性(例如,更加灵活的切分窗口)
- 比静态链接MFC的代码要小的多
- 可对WTL进行bug修正,而不影响已存在的应用程序(MFC中如果通过替换MFC/CRT的DLL来修正一个应用程序中的bug,往往会是另一应用程序崩溃)
- MFC,ATL,WTL的历史沿袭
- MFC,ATL,WTL的历史沿袭
- MFC,ATL,WTL的历史沿袭
- MFC,ATL,WTL的历史沿袭--
- ATL、MFC、WTL CString 的今生前世
- WTL\MFC\ATL CSTRING的前世今生
- ATL、MFC、WTL CString 的今生前世
- ATL、MFC、WTL CString 的今生前世
- ATL、MFC、WTL CString 的今生前世
- ATL、MFC、WTL CString 的今生前世
- ATL、MFC、WTL CString 的今生前世
- atl wtl mfc
- 混用ATL MFC WTL的问题-CString的冲突
- MFC程序员的WTL指南: Part I - ATL 界面类
- MFC程序员的WTL开发指南之ATL界面类
- MFC程序员的WTL指南: Part I - ATL 界面类
- MFC程序员的WTL指南: Part I - ATL 界面类
- 解读ATL/WTL/MFC消息映射的实现方式
- AWR 分析 :独上高楼,望见 AWR 路
- NYOJ - 擅长排列的小明 II
- D_dbmcfg_dbcfg配置
- rqnoj-93
- DB2目录结构
- MFC,ATL,WTL的历史沿袭
- 三、Oracle/支付宝/旺旺
- D_command
- STL,ATL,WTL的联系与区别
- 四、淘宝技术发展(Java时代:脱胎换骨)
- Java对多线程的支持(二) - 线程死锁
- 五、淘宝技术发展(Java时代:坚若磐石)
- NMOS Versus PMOS
- 六、淘宝技术发展(Java时代:创造技术-TFS)