欢迎来到天天文库
浏览记录
ID:37916652
大小:55.00 KB
页数:10页
时间:2019-06-02
《ATL之深入解析书评》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ATL之深入浅出——介绍一本关于ATL的书《ATLInternals》潘爱民,5月7日,2000年北京大学计算机研究所,100871引言面对计算机图书市场的繁荣景象,我经常感叹今天学习计算机开发技术的同道们是多么幸运。十年前,我们学习计算机语言非常不容易,要掌握各种开发工具只有靠自己的摸索和极少量的参考手册。我记得,94年我学习VisualC++和MFC的时候,基本上只有靠软件自带的联机帮助;现在情形大不同了,书店中的计算机图书琳琅满目,关于VisualC++和MFC的书籍尤其多。有几位编辑朋友劝我写一点这方面的书,我觉得不大有必要了,因为VisualC++的好书已经不少了,适合各种读者层
2、次的书籍几乎都可以买到,而且有一些书还相当不错。不过,在98年的时候,我感觉关于COM书籍实在太少,几乎没有,于是我下定决心,自己写一本关于COM的书籍,在99年底的时候由清华出版社出版。很快地,关于COM的书籍已经很多了,有些国外的名著也相继引入国内。从这十多年的计算机开发技术历史来看,一门技术只要有很多的书籍来介绍,那么这项技术很快就会普及,否则就难以推广。说到COM,相信在Windows平台上有过开发经验的朋友一定接触过,它是Windows操作系统的基本软件模型,从93年建立以来,为Windows平台的推广和发展做出了不可磨灭的贡献,而且其自身还在不断发展。但是要真正开发COM组件并
3、不是很轻松,在VisualC++中,我们既可以使用MFC也可以使用ATL。MFC完全面向Windows应用,它用C++的封装技术建立了一套适合于开发Windows应用的C++类库,虽然在后期的版本中MFC提供了大量的COM支持,但是从基本的设计结构上讲,MFC不适合于开发专业的COM组件,它适合于在Windows应用的基础上提供相应的COM支持。ATL则不同于MFC,它完全面向COM组件,其技术路线也不同于MFC,MFC使用的是C++中的继承、封装、嵌套等常规技术,而ATL使用了C++中模板、多继承等高级技术,甚至还用到了STL。所以学习和使用ATL要求我们必须熟悉这些C++高级特性。另一
4、方面,ATL结构完全针对COM中的诸多规范,这就要求使用人员必须非常了解COM规范,才有可能真正把ATL用好。虽然目前关于MFC的书籍很多,但是完全介绍ATL的书籍非常少,甚至根本没有,这不能不说是一个遗憾。我有幸在今年2月份看到一本ATL的英文原版书《ATLInternals》,本文将为大家介绍这本书。在看这本书之前,我对ATL已经有了基本的了解,98年底由于写作的需要,我曾经读过ATL的部分源码,对于ATL的基本结构还算清楚。我刚开始看到这本书的时候,快速读了一章,并没有感觉这本书有多好,后来由于工作忙碌的原因,一直没有得闲,直到最近,我才仔细把这本书读了一遍,感觉这是一本不可多得的好
5、书。以前我很少仔细阅读开发技术类的书籍,一则是由于自己读书太慢,二则是往往开发技术类的书籍不大值得精读。但是这本书我读得很仔细,因为这本书把ATL的精华几乎全表述出来了,ATL中的许多内容都能让你为之心动,作为一个程序员,这也是一个学习和提高的机会。10我写这篇文章的意图不仅仅是向读者介绍这本书,我也希望能够把我在阅读过程中的心得与大家分享。同时我还希望能够按照这本书的路线,向大家介绍一下ATL的结构和机理。准备阅读《ATLInternals》由Addison-Wesley出版社出版,作者为BrentRector和ChrisSells,出版时间为1999年2月,全书600多页。关于这本书的
6、背景知识可能对于许多COM迷和ATL迷来说很有意思。首先,这本书的序言是由ATL的发明人JimSpringfield所撰写,在序言中,Jim介绍了ATL的历史,对于书中所介绍的内容大加赞赏,称赞“阅读此书可以学到许多阅读源码所不能掌握的内容”,在序言的最后,Jim还谈到了ATL的将来。其次,在作者写的自序中,他们提到了ATL离不开COM,要想掌握ATL,就一定要先掌握COM。ATL是一个产生C++/COM代码的框架,就如同C语言是一个产生汇编代码的框架,这个观点颇为新颖,仔细想来,确是如此。作者特别推荐了DonBox的书《EssentialCOM》,其实在英文书中,COM书籍不少,这显示出
7、两位作者与DonBox的关系非同一般。我记得DonBox也曾经推荐过《ATLInternals》这本书,如果读者有机会到亚马逊网上书店(www.amazon.com)看看本书的书评就可以知道他们之间有很亲密的关系,其中作者之一ChrisSells与DonBox以及另外两人合作写了一本COM的书《EffectiveCOM》(本书文中有多处推荐了这本书)。我相信他们的互荐是基于相互之间绝对了解的基础之上的,他们都是COM顶尖
此文档下载收益归作者所有