在带有_com_ptr_t成员的C ++类中,如果在同一指针上重复使用CreateInstance()以获取COM对象的新实例,而不首先执行Release(),则内存是否会泄漏?有充分证据表明,当其中一个智能指针超出范围时,ref计数会减少,而当封装指针是Detach()时则不会减少。 MSDN似乎没有提到重复CreateInstance()时引用计数的含义。
答案 0 :(得分:5)
_com_ptr_t
在Release()
开头CreateInstance()
调用_com_ptr_t
后就不会发生泄漏,您可以通过阅读{{1}}实施轻松验证自己。
答案 1 :(得分:0)
CreateInstance()调用 在调用CoCreateInstance()之前_Release()。请参阅里面的实现。