dll是指动态连接库文件,这种文件提供了多种封装的API函数以供客户应用程序调用。而COM的进程内服务器组件的DLL文件提供了一系列的对象,客户应用程序(也可以称作Container,容器)可以初始化之,并在该应用程序的进程空间运行,这就是进程内组件;而相应的进程外服务器COM(.exe文件)则在实例化之后之后独立运行于自己的进程空间中。
普通的DLL文件只提供了一系列的函数,而并没有提供可以实例化的对象。
普通的DLL文件只提供了一系列的函数,而并没有提供可以实例化的对象。
注册表内纪录的是该COM DLL的CLSID,以及IID(接口ID),如果COM组件是应用级兼容的,那么其CLSID/ProgID不会改变,而IID会改变。
客户代码往往是通过ProgID与CLSID来创建实例的,所以不需要更改代码。类抽象实现和封装只是COM的一个特点,而且远远不是COM的最大优点。
分布式,面向对象,进程控制,权限控制……太多了,关键要看你需要用到什么东西了。
特别是对于C++来说
COM和DLL的显示加载差不多
2、管理接口;
3、封装、多态;优点数不胜数,还是自己看书吧