WTL for MFC Programmers

WTL for MFC Programmers
 
我一直在寻找这样一个类库:他对 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 能实现的各种稀奇古怪的效果都实现了,但都是着眼于局部问题得解决,缺乏系统地全面地介绍 WTL 的文章。就在这个时候我看到了迈克尔 . (Michael Dunn) 的“ WTL for MFC Programmers ”系列文章,我的感觉和 1995 年我第一次见到 MSDN 时一样,几乎是迫不及待地将其读完,同时也萌发了将其翻译成汉语的冲动。于是给 Michael 写了封邮件,希望能够得到授权将他的文章翻译成汉语 ( 事实上在这之前我已经翻译了两章了 ) 。在得到授权确认后才发现这个工作是多么的困难,但为时已晚,只能硬着头皮撑下去。
 
现在介绍一下迈克尔 . 这个人。迈克 (Mike) 住在阳光灿烂的洛杉矶,深受那里天气的宠爱使他愿意一直住在那里。他在 4 年级时就开始在 Apple //e 上编程序, 1995 年从 UCLA( 加利福尼亚大学洛杉矶分校 ) 毕业,获得数学学士学位。毕业后加盟赛门铁克 (Symantec) 公司,成为 Norton AntiVirus 小组的质量评价工程师。他几乎是自学了 Windows MFC 编程, 1999 年他为 Norton AntiVirus 2000 设计并编写了新的界面。迈克现在是 pressplay ( 不久成为 Napster) 的开发人员。他最近开发了一个 IE 的工具条插件 UltraBar ,可以轻松实现繁琐的网络搜索功能。他还和别人合作创办了一家软件开发公司: Zabersoft ,该公司在洛杉矶和欧登赛 ( 丹麦 ) 都设有办事处。迈克喜欢玩弹球和骑自行车,偶尔也玩一下 PlayStation ,他还一直坚持学习法语,官方汉语和日语。
 
另外需要说明得是我翻译“ WTL for MFC Programmers ”系列文章不是为了获得任何利益,只是想为大家提供一些新的思路。如果你是 MFC 的坚定捍卫者,看到这里你就可以停下来了,再看下去是浪费你的时间 ( 希望你看了前面几段文字还能挺住不要呕吐 ) 。如果你是个对另类事物充满热情的程序员,你不能不研究 WTL ,它真的是一座宝藏。
 
最后用我的朋友对我的翻译文章的评价来结束“ WTL for MFC Programmers ”中文版的序言:翻译水平和你用的鼠标一样烂!
 
 
 
Orbit (inte2000@163.com)
2003 8 17
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值