MFC程序员的WTL指南(1)中文版序言

2016-02-19 16:41 3 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的MFC程序员的WTL指南(1)中文版序言懂设计的网友们快点来了解吧!

【 tulaoshi.com - 编程语言 】

  我一直在寻找这样一个类库:他对Windows的窗口提供面向对象的封装,有灵活的消息响应机制和比较完备的界面框架解决方案,对标准控件提供简练实用的封装,支持操作系统的新特性,支持功能扩充和二次开发,有代码自动生成向导机制,生成的程序使用较少的系统资源,最后是有完全的代码支持和文档支持。

  你会说那就用MFC吧!

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  是的,我一直使用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写了封邮件,希望能够得到授权将他的文章翻译成汉语(事实上在这之前我已经翻译了两章了)。在得到授权确认后才发现这个工作是多么的困难,但为时已晚,只能硬着头皮撑下去。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  现在介绍一下迈克尔.敦这个人。迈克(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@263.net)

  2003年8月17日

来源:http://www.tulaoshi.com/n/20160219/1612785.html

延伸阅读
我觉得“做其他的工作,35岁是事业蒸蒸日上,做软件35岁就失业 ”是今天Bird说的一句非常错误的话。真的。 大家千万不要受这种话影响,也不要散布这样的话。否则也许断送不了自己,但是有可能断送中国软件业的将来。 我觉着可以试试讨论,35岁以后,软件人员应该怎样转型而不是消极的谈失业,也太颓废了吧!
标签: Web开发
本程序最初是由wanghr100(灰豆宝宝.net)的checkForm基础上进行修改的,增加了很多功能,如下: 对非ie的支持 增加了内置表达式和内置提示 增加了显示方式(弹出式和页面显示式) 增加了显示一条和显示全部 进行了封装(CLASS_CHECK) 支持外接函数或表达式(应用在密码一致) 简化了调用方式,所有操作只需要script language='javascript' src='c...
程序员的技能专长怎么写?下面给大家提供的简历技巧,希望可以帮到您,祝您生活愉快,找到称心如意的工作! 一、熟练面向对象编程思想,扎实的Java基础知识,精通Jsp、Servlet、Jdbc下的编程开发。 精通Struts、Hibernate、Spring开源框架,并熟练运用MVC设计模式,并具有使用这些技术的丰富经验。 熟练使用MyEclipse、Dream...
标签: Java JAVA基础
三:选择要求(因项目而定) 1:LDAP 掌握程度:了解 原因:LADP越来越多的运用在权限控制上面。 2:Struts 掌握程度:熟练 原因:如果符合MVC设计通常会使用Struts实现C。 3:Xsp 掌握程度:根据需要而定很多时候是不使用的,但在不需要使用ejb但jsp+servlet+bean实现不了的时候Xsp是一个非常不错的选择。 4:Linux 掌握程...
标签: Web开发
[PHP] ; PHP还是一个不断发展的工具,其功能还在不断地删减 ; 而php.ini的设置更改可以反映出相当的变化, ; 在使用新的PHP版本前,研究一下php.ini会有好处的 ;;;;;;;;;;;;;;;;;;; ; 关于这个文件 ; ; 这个文件控制了PHP许多方面的观点。为了让PHP读取这个文件,它必须被命名为 ; 'php.ini'。PHP 将在这些地方依次查找该文件:当前工作目...

经验教程

301

收藏

55
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部