shared_ptr - ccomptr swap

时间:2011-03-15 16:34:38

标签: c++ com+

我在这里得到一个简单的问题

我们假设我们的代码库使用了shared_ptr / enable_shared_from_this

我们被要求将代码库的一部分转换为COM服务器,而我们应该使用CComPtr,而不是强制要求...

现在这是问题; atl / com +中是否有模仿enable_shared_from_this

的功能

2 个答案:

答案 0 :(得分:2)

使用CComPtr时不需要enable_shared_from_this因为CComPtr不保持引用计数。相反,它指向的对象保持引用计数。所有CComPtr都在对象上调用成员函数,增加或减少引用计数。执行以下操作没有问题:

void Func(IUnknown* someObj)
{
    CComPtr ptrA = someObj;
    CComPtr ptrB = someObj;
}

答案 1 :(得分:0)

COM对象有很多规则,它并不像声明智能指针那么容易。我建议研究这个问题,这不是一个可以简化为简短答案的东西。