【vc++精品源码栏目提醒】:网学会员--在 vc++精品源码编辑为广大网友搜集整理了:MFC程序员的WTL指南 - 软件工程绩等信息,祝愿广大网友取得需要的信息,参考学习。
MFC 程序员的 WTL 指南: 中文版序言 作者:Orbit www.winmsg.com 我一直在寻找这样一个类库:他对 Windows 的窗口提供面向对象的封装,有灵活的消息响应机制和比较完备的界面框架解决方案,对标准控件提供简练实用的封装,支持操作系统的新特性,支持功能扩充和二次开发,有代码自动生成向导机制,生成的程序使用较少的系统资源,最后是有完全的代码支持和文档支持。
你会说那就用 MFC 吧! 是的,我一直使用 MFC,但我对 MFC 已经越来越厌倦了。
陈旧的类库使得它无法支持操作系统的新特性MFC 的类库从 4.21 版之后就没有更新了,而那时是 1998 年,人们使用 Windows 95 和 windows NT4,臃肿的消息映射机制和为了兼容性而保留下来的代码使得程序效率低下,面面俱到的框架结构使得生成的应用程序庞大并占用过多的系统资源。
当一个功能简单的程序使用动态链接也超过 200K,占用 3-4的系统资源时,我决定放弃 MFC,寻找一个新的功能类似的类库。
我研究过很多类似的代码,不是过于简单,无法用于应用程序的开发就是缺乏代码和文档的支持。
在 CodeProject 上有一个名为 Class 的类库,我也研究过它的代码,具备了基本的界面框架,对控件也有了简单的封装,但是不实用,庞大的虚函数机制使得对象非常臃肿,无法减少对资源的占用。
我甚至仿照 MFC 做了一个简单的类库 miniGUI,形成了基本的框架解决方案,但是最后放弃了,原因很简单:无法用于应用程序的开发。
一个应用程序界面框架错综复杂,要考虑的事情太多,开发者不可能在应用程序和界面框架两线作战。
就在我即将绝望的时候,我遇到了WTL。
由于工作的需要经常开发一些 COM 组件,在要求不能使用 MFC 的场合就是用 ATL。
ATL 提供了对窗口的面向对象地封装和简单的消息映射机制,但是 ATL 过于简单,用它开发应用程序几乎不可能。
要想让 ATL 具备界面框架解决方案的功能还需要做很多事情,幸运的是 WTL 就做了这些事情。
WTL 是个很奇特的东西,它由微软公司一群热情的程序员维护,它从未出现在微软的官方产品名单上,但可以从微软的官方网站下载最新的 WTL。
用 它没有正式的文档支持, WTL 做关键字在 MSDN 中检索只能得到 0 个结果,但是全世界的开发网站上都有针对 WTL 的讨论组和邮件列表,任何问题都会得到热情的解答。
我认真地对比了 MFC 和 WTL,发现二者有很多相通之处,MFC 的功能几乎都能在 WTL 中实现,只是方法不同而已。
我几乎不费吹灰之力就将以前写的一个 MFC 程序用 WTL 改写了,使用静态链接的 WTL 程序比使用动态链接的 MFC 程序还要小,资源占用只有 MFC 程序的一半。
但是一时的热情不能解决文档缺乏的困扰,虽然网上有很多使用 WTL 的例子和说明文章,几乎把 MFC能实现的各种稀奇古怪的效果都实现了,但都是零散的不系统的介绍。
就在这个时候我看到了迈克尔.敦Michael Dunn的“WTL for MFC Programmers”系列文章,我的感觉和 1995 年我第一次见到 MSDN 时一样,几乎是迫不及待地将其读完,同时也萌发了将其翻译成汉语的冲动。
于是给 Michael 写了封邮件,希望能够得到授权将他的文章翻译成汉语事实上在这之前我已经翻译了两章了。
在得到授权确认后才发现这个工作是多么的困难,但为时已晚,只能硬着头皮撑下去。
现在介绍一下迈克尔.敦这个人。
迈克Mike住在阳光灿烂的洛杉矶,深受那里天气的宠爱使他愿意一直住在那里。
他在 4 年级时就开始在 Apple 上编程序,1995 年从 UCLA 加利福尼亚大学洛杉矶分校毕业,获得数学学士学位。
毕业后加盟赛门铁克Symantec公司,成为 Norton AntiVirus 小组的质量评价工程师。
他几乎是自学了 Windows 和 MFC 编程,1999 年他为 Norton AntiVirus 2000 设计并编写了新的界面。
迈克现在是 pressplay不久成为 Napster 的开发人员。
他最近开发了一个 IE 的工具条插件 UltraBar ,可以轻松实现繁琐的网络搜索功能。
他还和别人合作创办了一家软件开发公司:Zabers