经常看到com这个概念,是在vc编程资料中看到的,这是什么意思,请大家给解释一下好,通俗点好吗?我的qq是79110201。

解决方案 »

  1.   

    一般的讲,一个应用程序总是由单个的二进制文件组成。在以前,如果这个程序需要做一些改进,就要修改源代码,然后编译,声称新的文件,然后取代原来的文件。现在,我们用一种全新的角度来看问题:把原先一整个的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,VMS,SCO UNIX到LINUX的操作系统上都将得以实现COM。COM的确有一些具体的实现。COM本身要实现一个称为COM库(COM library)的API,它提供诸如客户对组件的查询,以及组件的注册/反注册等一系列服务,一般来说,COM库由操作系统加以实现,程序员不必关心其实现的细节。总体来看,COM提供了编写组件的一个标准方法。遵循COM标准的组件可以被组合起来以形成应用程序。至于这些组件是谁编写的,是如何实现的并不重要。组件和客户之间通过"接口"来发生联系。
      

  2.   

    COM,Component Object Model。他建立了一种凡是写有关COM的程序(比如COM组件、ActiveX控件)都要遵守的规则,这要就保证你写的东西,我可以调用。