草庐IT

myAtlCOMObject

全部标签

c++ - 当指针超出范围时,CComObject::CreateInstance 创建的 COM 对象不会被销毁

使用智能指针CComObject我通过调用其静态方法CreateInstance创建了一个COM对象。但是当我离开我的程序时,至少在VS13中,那个对象仍然在运行。这是我的代码:CComObject*myAtlCOMObject=NULL;HRESULThr=CComObject::CreateInstance(&myAtlCOMObject);ASSERT(SUCCEEDED(hr));我希望在超出范围时调用~CComObject()方法,但这并没有发生。我尝试将上面的代码放在花括号中以强制新创建的对象超出范围。我尝试在myAtlCOMObject上调用FinalRelease并成功