首页 > 技术文章 > ATL组件实现

aoun 2014-06-15 23:27 原文

For example:

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


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

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

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

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

推荐阅读