COM技术纵横谈.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
COM技术纵横谈.doc

COM技术纵横谈 -- tsingxiao 一:概述 ? PC机自从诞生以来,硬件经历了无数变化,CPU从最初的INTEL 8086到现在PIII满大街都是也只不过 十几年。微软的WINDOWS操作系统从最初的1.0版本到现在即将推出WIN2000,一直是桌面系统上装机量 最大的OS。 作为软件开发人员,使用着包括Visual Basic,Visual C++,Delphi包括最新的 Borland C++ builder等等在内的众多开发环境为WINDOWS开发应用程序。应该说现在的开发条件和若 干年以前比已经是大大的进步了。 ? 如果你开发过16位的WINDOWS程序,你可能知道为了读取一个文件,我们不得不使用一小段汇编来调 用DOS例程,或者使用当时WINDOWS尚未公开的函数:_lopen()。在win32环境下,你所要做的全部是 调用 : :CreateFile()来获得一个文件句柄,当然如果使用MFC或是OWL之类的东西,你可以更简单的 做到。不过一般情况下,程序员仍然不得不从头开始写编写应用程序的每一行代码。 ? 但这种情况得到了改变:微软提出了C O M(Component Object Model, 中文也可以译作“组件对 象模型”)概念,并且在最新的WINDOWS95/98以及WIN NT4中越来越广泛的使用它:我们有理由相信在 不久的将来,C O M 将成为构建应用程序最普遍的方法,如果你对此技术有兴趣,不妨参考本文,希望 从中你能学到想知道的知识。如果你已经是C O M老手,也欢迎你批评指正,我的email是 singxiao@ ? 本文是针对C++程序员写的。在介绍概念的时候,我尽量不把WIN32 API的知识混合进来,以便你能够 更清晰的看到C O M的本质。所有的例子都用Microsoft Visual C++5(SP3)编译通过。 ? 一般的讲,一个应用程序总是由单个的二进制文件组成。在以前,如果这个程序需要做一些改进,就 要修改源代码,然后编译,声称新的文件,然后取代原来的文件。现在,我们用一种全新的角度来看问 题:把原先一整个的EXE可执行文件,分割成功能不同,但相对独立的几个部分,把他们拼装起来,组 成程序,组成软件。在未来程序发布以后,如果意识到需要对他进行修改,只要替换有问题的或是需要 升级的组建就可以了。甚至可以做到再不影响程序正常运行的情况下替换其中的部件。如果你熟悉 WINDOWS编程,可能会想到:DLL似乎就是你所说的东西:可以动态连接。事实上,COM正是充分利用了 Win32 DLL的灵活性才得以真正在Windows平台上实现的。 ? 这样做有哪些优点呢?首先:用户一般希望能够定制所用的应用程序,而组件技术从本质上讲就是可 被定制的,因而用户可以用更能满足他们需要的某个组件来替换原来的那个。其次,由于组件是相对应 用程序独立的部件,我们可以在不同的程序中使用同一个组件而不会产生任何问题,软件的可重用性将 大大的得到增强。第三,随着网络带宽及其重要性的提高,分布式网络应用程序毫无疑问的成为软件市 场上越来越重要的买点。组件价构可以使得开发这类应用程序的过程得以简化。 ? 那么,COM到底是什么呢?它是一个说明如何建立可动态互变组件的规范。 他定义了一些为保证能互 操作,客户(一个术语,指需要某种组件的程序)组件必须遵循的标准,COM规范就是一套为组件架构 设置标准的文档形式的规范。COM的发布形式是:以win32动态链接库(DLL)或者可执行文件(EXE)的形 式发布的可执行代码组成。 ? COM组件是动态连接的,而且COM组件是完全与语言无关的。同时,COM组件可以以二进制的形式发布。 COM组件还可以在不妨碍老客户的情况下被升级成新的版本。 ? 你现在可以认为,COM所能提供的服务有些类似C++中的类。不过类是基于源代码的,COM则不是。不 过这里要澄清一些关于COM的错误观点:首先,COM不是一种计算机语言。把COM同某种计算机语言(如 C++, VB)相比较是没有意义的。其次,也不要把DLL和COM做比较,因为COM技术正是利用了DLL的动态 链接能力才得以实现的,而现在一般观点则认为,利用DLL动态链接能力最佳的方法是COM。当然,COM 也不是win32 API那样的一个函数集:它并没有支持或者提供类似MoveWindow这样的函数来对系统进行 特定的操作。COM也并不是类似于MFC那样的C++类库。COM给开发人员提供的是一种开发与语言无关的组 件库的方法,但COM本身并没有提供任何实现。在一定程度上可以认为COM是系统无关的,software AG 组织正在开发一系列COM支持系统,有望在不久的将来,包括从Mac OS,VM

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档