描述:
如果要使用ATL编写COM组建,对于ATL中的一些模版和宏,需要了解到什么程度?
比如:
class ATL_NO_VTABLE CUtility :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CUtility, &CLSID_Utility>,
public ISupportErrorInfo,
public IDispatchImpl<IUtility, &IID_IUtility, &LIBID_Lib>
{
....
中的CComObjectRootEx<CComSingleThreadModel>,CComCoClass<CUtility和 ISupportErrorInfo&CLSID_Utility>
还有
DECLARE_REGISTRY_RESOURCEID(IDR_UTILITY)
DECLARE_PROTECT_FINAL_CONSTRUCT()
。。。
等等。
解决方案1:
我们可以不太关心这些模版和宏是"怎么实现"的,但是我们要清楚"他们是作甚么"用的。
解决方案2: 深入解析ATL是相当好的一本书啊,。看吧。
其实要写COM组建的话,对模版和宏不用了解太多了。
说实在的,看懂了也没有太大的用处。
相关的可以看看Modern C++ Design, 理解Policy Class就差不多了。
这些都是固定格式,你要想知道这个作用的话,还是看看深入解析ATL吧
通常会用向导就能写出来.