WEB开发网
开发学院软件开发VC 用ATL建立轻量级的COM对象 阅读

用ATL建立轻量级的COM对象

 2006-07-21 11:44:40 来源:WEB开发网   
核心提示: 使用正确的工具非常关键,如果你正在编写一个不可见的COM组件,用ATL建立轻量级的COM对象(2),那么ATL与MFC比起来,从开发效率,它完全可以和原始的COM编程技术媲美,另外一个使用ATL开发COM组件的理由是Visual C++ 5.0+集成开发环境(IDE)对ATL的高度支持,可

使用正确的工具非常关键。如果你正在编写一个不可见的COM组件,那么ATL与MFC比起来,从开发效率,可伸缩性,运行时性能以及可执行文件大小各方面来看,ATL可能 都是最好的选择。对于现代基于ActiveX控件的用户界面,ATL所产生的代码也比MFC更小更快。另一方面,与MFC的类向导相比,ATL需要更多的COM知识。ATL与STL一样,对于单层应用没什么帮助,而MFC在这方面保持着它的优势。

ATL的设计在很大程度上来自STL的灵感,STL与所有ANSI/ISO兼容的C++编译器一起已经被纳入成为标准C++库的一部分。像STL一样,ATL大胆使用C++模板。模板是C++中众多具有争议的特性之一。每每使用不当都会导致执行混乱,降低性能 和难以理解的代码。明智地使用模板所产生的通用性效果和类型安全特性则是其它方法所望尘莫及的。ATL与STL一样陷入了两个极端。幸运的是 在L大胆使用C++模板的同时,编译器和链接器技术也在以同样的步伐向前发展。为当前和将来的开发进行STL和ATL的合理选择。

尽管模板在内部得到广泛的使用,但是在用ATL技术时,你不用去敲入或关心那些模板中的尖括弧。因为ATL本身带有ATL对象向导(参见图一):

图一 ATL 对象向导

对象向导产生大量基于ATL模板类缺省的对象实现代码(即框架代码)。这些缺省的对象类型如附表一所列。ATL对象向导允许任何人 快速建立COM对象并且在分分钟之内让它运行起来,不用去考虑COM或ATL的细节问题。当然,为了能充分驾驭ATL,你必须掌握C++,模板和COM编程技术。对于大型的对象类,只要在ATL对象向导所产生的缺省实现(框架代码)中加入方法实现来输出定制接口,这也是大多数开发人员开始实现COM对象时的重点所在。

初次接触ATL时,其体系结构给人的感觉是神秘和不可思议。HelloATL是一个最简单的基于ATL的进程内服务器源代码 以及用SDK(纯粹用C++编写)实现的同样一个进程内服务器源代码。在真正构建出一个COM组件之前,代码需要经过反反复复多次斟酌和修改。对于想加速开发COM组件速度的主流组件开发人员来说,ATL体系结构并不是什么大问题,因为对象向导产生了所需要的全部框架代码,只 要你加入方法定义即可。对于认真的COM开发人员和系统编程人员来说,ATL提供了一个用C++建立COM组件的高级的,可扩展的体系结构。一旦你理解和掌握了这个体系结构并能驾驭对象向导,你就会看到ATL的表现能力和强大的功能 ,它完全可以和原始的COM编程技术媲美。

另外一个使用ATL开发COM组件的理由是Visual C++ 5.0+集成开发环境(IDE)对ATL的高度支持。 微软在Visual C++ 5.0+中将ATL所要用到的接口定义语言(IDL)集成到了C++编辑器中。(待续)

上一页  1 2 

Tags:ATL 建立 轻量级

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接