用ATL创建的com class怎样显示实例化?

参见
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 ce(&pObj);
// 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即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值