gpt4 book ai didi

c++ - CreateInstance 对象是否需要在析构函数中明确销毁?

转载 作者:行者123 更新时间:2023-11-28 01:55:07 25 4
gpt4 key购买 nike

这是我的构造函数:

CMSATools::CMSATools()
{
m_pInterface = NULL;

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

m_p接口(interface)定义:

MSAToolsLibrary::IMSAToolsLibraryInterfacePtr m_pInterface;

最佳答案

如果 m_pInterface 是一个智能 COM 对象指针,如 CComPtr ,您不需要显式销毁它。当智能指针超出作用域时,比如当 ~CMSATools 析构函数被调用时,或者当智能指针被赋予新值时,它会减少它当前持有的 COM 对象的引用计数指向的指针。当 COM 对象的引用计数降为 0 时,它会 self 销毁。

关于c++ - CreateInstance 对象是否需要在析构函数中明确销毁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41504475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com