dll是指动态连接库文件,这种文件提供了多种封装的API函数以供客户应用程序调用。而COM的进程内服务器组件的DLL文件提供了一系列的对象,客户应用程序(也可以称作Container,容器)可以初始化之,并在该应用程序的进程空间运行,这就是进程内组件;而相应的进程外服务器COM(.exe文件)则在实例化之后之后独立运行于自己的进程空间中。
普通的DLL文件只提供了一系列的函数,而并没有提供可以实例化的对象。

解决方案 »

  1.   

    补充两句:
    注册表内纪录的是该COM DLL的CLSID,以及IID(接口ID),如果COM组件是应用级兼容的,那么其CLSID/ProgID不会改变,而IID会改变。
    客户代码往往是通过ProgID与CLSID来创建实例的,所以不需要更改代码。类抽象实现和封装只是COM的一个特点,而且远远不是COM的最大优点。
    分布式,面向对象,进程控制,权限控制……太多了,关键要看你需要用到什么东西了。
      

  2.   

    差不多
    特别是对于C++来说
    COM和DLL的显示加载差不多
      

  3.   

    标准DLL和COM有着本质的不同,见COM本质论。正因为标准DLL发展过程中出现不可逾越的理论障碍,才出现COM.
      

  4.   

    com比标准DLL的几点优越:1、升级;
    2、管理接口;
    3、封装、多态;优点数不胜数,还是自己看书吧