首页 > 代码库 > ATL组件实现

ATL组件实现

For example:

1 class ATL_NO_VTABLE CMath :2   public  CComObjectRootEx<CComSingleThreadModel>3   public CComClass<CMath, &CLSID_Math>4   public IMath,5   public IAdvancedMath6 {7     ....8 };


从CComObjectRootEx得到IUnknown支持,从CComCoClass得到类工厂支持,从IMath等获得方法特征

ATL_NO_VTABLE是为了压缩代码长度的一个尝试(推迟生成Vtable),实现类仍然是一个抽象类,实例化时才生成Vtable

ATL框架完全是为了性能着想,性能是压倒一切的因素

类工厂是为了支持外部创建