1.可执行程序太大+软件复用
2.拆分成模块
(1)DLL ->DLL Hell
(2)COM(新的DLL:PE/ELF格式,固定的DLL函数:get组件对象指针):通过CLSID定位组件,再查注册表得到元数据(调用规范)
3.CAR(免注册:将元数据放入组件,而不是系统注册表)
CAR将元数据(可以还原成.h头文件----各种声明)放入DLL中
普通DLL不含元数据(自描述信息)只能根据ClsID(调用约定)进行静态(约定死了)调用
COM组件:(新的DLL:PE/ELF格式,原生DLL函数)
原生DLL函数:
(1)CoGetClassObject
(2)CoCreateInstance
(3)CoCreateInstanceEx