【问题标题】:shared_ptr - ccomptr swapshared_ptr - ccomptr 交换
【发布时间】:2011-03-15 16:34:38
【问题描述】:

我有一个简单的问题

假设我们有一个使用shared_ptr/enable_shared_from_this的代码库。

我们被要求将代码库的一部分转换为 COM 服务器,我们应该在其中使用 CComPtr,虽然这不是强制性要求...

现在问题来了; atl/com+ 中是否有任何模仿enable_shared_from_this 的功能?

【问题讨论】:

    标签: c++ com+


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      COM 对象有很多规则,并不像声明一个智能指针那么简单。我建议研究一下这个主题,这不是可以浓缩成简短答案的东西。

      【讨论】:

        猜你喜欢
        • 2012-03-03
        • 2012-06-27
        • 1970-01-01
        • 2019-02-01
        • 2010-09-24
        • 2012-07-22
        • 2011-09-13
        • 1970-01-01
        • 2014-05-13
        相关资源
        最近更新 更多