1

在具有 _com_ptr_t 成员的 C++ 类中,如果在同一个指针上重复使用 CreateInstance() 来获取 COM 对象的新实例,而不首先执行 Release(),是否会发生内存泄漏?有据可查的是,当这些智能指针之一超出范围时,引用计数会减少,而当封装的指针被 Detach() 时,则不会减少。MSDN 似乎没有提到重复 CreateInstance() 时引用计数的含义。

4

2 回答 2

5

不会发生泄漏,因为_com_ptr_t调用Release()开始时您可以通过阅读实现CreateInstance()轻松验证自己。_com_ptr_t

于 2011-09-02T13:58:34.513 回答
0

CreateInstance() 在调用 CoCreateInstance() 之前调用 _Release()。请看里面的实现。

于 2016-05-17T14:16:37.683 回答