COM组件主要分为ActiveX DLL和Activex OCX控件。
它最早的设计意图是,跨语言实现程序组件的复用。比如说VC++开发一个控件,在VB中调用,或者在VB中开发一个组件库,给VC++调用。COM组件是面向对象的,并且它是自描述的,所谓自描述就是指,单单从这个COM DLL文件本身,就可以知道它包含什么函数,函数包含什么参数,参数和返回值是什么类型,它还包含什么类和结构体等等。而传统DLL则不行。
COM最广泛的应用是ActiveX控件,时至今日,你还能在很多网站上看到它,比如淘宝安全登录控件,网银控件,甚至大名鼎鼎的Flash Player控件等。整个Visual Basic都基于COM以及ActiveX控件。
在COM的基础上,微软搞出了COM+、DCOM,它们实现了跨计算机的代码调用,可以用于分布式计算。

解决方案 »

  1.   

    以下内容仅供参考:COM是开发软件组件的一种方法。组件实际上是一些小的二进制可执行程序,它们可以给应用程序,操作系统以及其他组件提供服务。开发自定义的COM组件就如同开发动态的,面向对象的API。多个COM对象可以连接起来形成应用程序或组件系统。并且组件可以在运行时刻,在不被重新链接或编译应用程序的情况下被卸下或替换掉。Microsoft的许多技术,如ActiveX, DirectX以及OLE等都是基于COM而建立起来的。并且Microsoft的开发人员也大量使用COM组件来定制他们的应用程序及操作系统。COM所含的概念并不止是在Microsoft Windows操作系统下才有效。COM并不是一个大的API,它实际上像结构化编程及面向对象编程方法那样,也是一种编程方法。在任何一种操作系统中,开发人员均可以遵循“COM方法”。一个应用程序通常是由单个的二进制文件组成的。当编译器生成应用程序之后,在对下一个版本重新编译并发行新生成的版本之前,应用程序一般不会发生任何变化。操作系统,硬件及客户需求的改变都必须等到整个应用程序被重新生成。这种状况已经发生变化。开发人员开始将单个的应用程序分隔成单独多个独立的部分,也即组件。这种做法的好处是可以随着技术的不断发展而用新的组件取代已有的组件。此时的应用程序可以随新组件不断取代旧的组件而渐趋完善。而且利用已有的组件,用户还可以快速的建立全新的应用。传统的做法是将应用程序分割成文件,模块或类,然后将它们编译并链接成一个单模应用程序。它与组件建立应用程序的过程(称为组件构架)有很大的不同。一个组件同一个微型应用程序类似,即都是已经编译链接好并可以使用的二进制代码,应用程序就是由多个这样的组件打包而得到的。单模应用程序只有一个二进制代码模块。自定义组件可以在运行时刻同其他的组件连接起来以构成某个应用程序。在需要对应用程序进行修改或改进时,只需要将构成此应用程序的组件中的某个用新的版本替换掉即可。总而言之,COM是关于如何建立组件以及如何通过组件建立应用程序的一个规范,说明了如何可动态交替更新组件。