0

これは私のコンストラクタです:

CMSATools::CMSATools()
{
    m_pInterface = NULL;

    HRESULT hr;
    hr = m_pInterface.CreateInstance(__uuidof(MSAToolsLibrary::MSAToolsLibraryClass));
    if (FAILED(hr))
    {
        // TODO     }
}

m_pInterface が定義されています。

MSAToolsLibrary::IMSAToolsLibraryInterfacePtr m_pInterface;
4

1 に答える 1

2

がCComPtrm_pInterfaceのようなスマート COM オブジェクト ポインターである場合は、明示的に破棄する必要はありません。デストラクタが呼び出された場合や、スマート ポインタに新しい値が割り当てられた場合など、スマート ポインタがスコープ外になると、現在ポインタを保持している COM オブジェクトの参照カウントが減分されます。COM オブジェクトの参照カウントが 0 になると、それ自体が破棄されます。~CMSATools

于 2017-01-06T11:27:06.360 に答える