我有一個簡單的問題在這裏shared_ptr的 - 但是CComPtr交換
讓我們假設我們有一個員工的shared_ptr
/enable_shared_from_this
使用代碼庫。
而且我們已被要求最先進代碼庫-a一部分轉換成我們都應該使用CComPtr
代替,而它沒有強制規定一個COM服務器...
現在這裏是個問題; atl/com +中有沒有模仿enable_shared_from_this
的功能?
我有一個簡單的問題在這裏shared_ptr的 - 但是CComPtr交換
讓我們假設我們有一個員工的shared_ptr
/enable_shared_from_this
使用代碼庫。
而且我們已被要求最先進代碼庫-a一部分轉換成我們都應該使用CComPtr
代替,而它沒有強制規定一個COM服務器...
現在這裏是個問題; atl/com +中有沒有模仿enable_shared_from_this
的功能?
使用CComPtr時不需要enable_shared_from_this
,因爲CComPtr不保留引用計數。相反,它指向的對象維護引用計數。所有CComPtr所做的是在對象上調用成員函數來增加或減少引用計數。沒有與執行下列操作沒有問題:
void Func(IUnknown* someObj)
{
CComPtr ptrA = someObj;
CComPtr ptrB = someObj;
}
有大量的COM對象的規則,它不是聲明智能指針一樣容易。我建議研究這個問題,這不是可以簡化爲一個簡短答案的東西。