参见
http://www.experts-exchange.com/Programming/Programming_Languages/Cplusplus/Q_20513227.html
用ATL 添加一个"ATL Simple Object" 叫MyObject
这个时候想创建一个势力 MyObject *ptr = new Myobject(); )
编译的时候会有这样的错误: "Error C2259 cannot instantiate abstract class."
里面回答的人说是纯虚函数的特性,我看应该是ATL的一个特性,我觉得这个是正确的回答:
Comment from YuriPutivsky Date: 02/13/2003 03:57PM PST | Comment | |
This is a well-known ATL trick.
The right way to create the instance of ATL class is: CComClass<YUOR_CLASS_NAME>* pObj = 0; HRESULT hr = CComClass<YUOR_CLASS_NAME>::CreateInstan // check error here // Also the good practice to request some interface through QueryInterface function because some internal static data are finally initialized on QueryInterface. |
把CComClass改成CComObject即可。