WTL(一)

WTL是由微软ATL小组开发的一套轻量级C++类库,用于构建Windows应用程序。相较于MFC,WTL具有体积小、不依赖外部库文件及高效的特点。尽管WTL未集成到VS开发环境中,也不提供官方技术支持与文档,但对于追求高性能和小体积应用的开发者来说,WTL是一个不错的选择。

WTL(Windows Template Library) ,是微软 ATL 小组开发的一套用于在 C++ 语言基础上构建 Windows 应用程序的类库,它基于 ATL 。相对于 MFC ,它是一套轻量级的开发类库,使用它开放出来的应用程序具有体积小、不依赖外部库文件( MFC 开发的应用程序在发布的时候需要依赖 MFC 类库)、高效等特点。但是,作为一个开发类库, WTL 却并未集成到 VS 开发环境中,而仅在微软内部使用,并且不提供技术支持、不提供开发文档,但是,爱好者可以从微软的网站上下载到。最新的版本已经发展到 WTL81 ,新的版本可以开发出支持 Vista 特效的应用程序,并且可以在 VS2008 上使用向导工具新建工程项目。这些,都暗示着这套类库在微软内部有着很高的人气。但是,为什么如此优秀的一个类库却没有发布?这个应该是微软出于长远发展的考虑,并不打算把 C++ 纳入今后 Windows 开发的主要语言 ( 毕竟虚拟技术如此诱人 ) ,而且 MFC 这个重型武器仍能够担负一定的重任,没有必要再推出一个和 MFC 竞争的产品。

那么,还有什么必要学习 WTL 么?特别是已经在 MFC 上已经奋战多年的程序员,抛弃掉无所不能的 MFC 而去使用一个没有开发文档、没有技术支持的 WTL ,是不是自作自受?在这个每 GB 硬盘 1 块钱,每 M 内存 1 毛钱 , MhzCPU 0.001 毛钱的硬件系统上,有必要为那几 M 硬盘容量,空间容量斤斤计较么?

但是,如果你要开发一个嵌入到微 UINX 内核的嵌入式系统上的 ActiveX 控件、或者你要为 WinCE 开发应用程序,或者你是一个执着于软件效率、对 C++ 执迷的开发者,那么, WTL 非常适合你。

MFC 充分利用 C++ 类的继承、重载、虚函数等特性相比, WTL 利用的是 C++ 的类模板技术,它摈弃了繁杂的多重继承,极大的减少了虚函数表的个数,更高效的实现了代码的重用。另外, WTL 的所有源码都通过 CPL 授权,你可以查看并修改它的所有代码,这有助于减少你在开发过程中的 Debug 的时间,减少你对开发文档的依赖。

但是, WTL 作为一个不公开的技术框架,它也存在一些不足,例如它没有经过大规模的开放测试,提供的功能不全面(相对于 MFC ),文档支持匮乏等,这些,都使得使用 WTL 的开发效率不高,所以,在选择 WTL 开始你的项目之前,你需要慎重的权衡利弊。

在开始阅读这些文章之前,你需要确定:

1)        熟悉 C++ 技术特性,特别是虚函数、模板与泛型编程,我希望你在看到它们到时候不会感到头晕。

2)        有过 Win32 下的编程经验,熟悉 Windows 消息循环。更好的,如果你在 MFC 下作过项目,那对你理解 WTL 有很大的帮助,你会发现它们之间有很多相似的地方。

3)        如果你对研究源代码有浓厚的兴趣,并且在 Debug 过程中喜欢从源代码入手而不是借助于搜索引擎( WTL 能搜出来的东西确实不够丰富),那么使用 WTL 开发不会使你丧心病狂。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值