如果要使用ATL编写COM组建,对于ATL中的一些模版和宏,需要了解到什么程度?
如果要使用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()
。。。
等等。
[解决办法]
这些都是固定格式,你要想知道这个作用的话,还是看看深入解析ATL吧
通常会用向导就能写出来.
[解决办法]
我们可以不太关心这些模版和宏是 "怎么实现 "的,但是我们要清楚 "他们是作甚么 "用的。
[解决办法]
深入解析ATL是相当好的一本书啊,。看吧。
其实要写COM组建的话,对模版和宏不用了解太多了。
说实在的,看懂了也没有太大的用处。
相关的可以看看Modern C++ Design, 理解Policy Class就差不多了。