关于智能指针spTest
spTest.Release()和spTest.p->Release()的区别是什么。从CComPtr的源码看:
void Release()
{
IUnknown* pTemp = p;
if (pTemp)
{
p = NULL;
pTemp->Release();
}
}
感觉差别就在spTest.p->Release()没有最后 = NULL的赋值操作而已。
spTest.Release()和spTest.p->Release()的区别是什么。从CComPtr的源码看:
void Release()
{
IUnknown* pTemp = p;
if (pTemp)
{
p = NULL;
pTemp->Release();
}
}
感觉差别就在spTest.p->Release()没有最后 = NULL的赋值操作而已。
解决方案 »
- 不显示删除回复显示所有回复显示星级回复显示得分回复 专有命名空间,求大牛
- 如何编程实现"唤醒"另一个程序的主窗口,或者说使其变成桌面最顶层的窗口?
- 还是关于用函数创建控件的消息映射的,哎,没搞定啊
- 帮忙回3个帖子~~好结帖,都100分的,没人回..谁帮回一帖?分全给了~~
- int 如何转换成 CString 报错
- 关于数据库的学习,大家来给点意见,顺便散点分。。。。
- 新人求助,关于打开mdb的问题
- 关于ATL
- 在线程中如何给主窗口发送消息,主窗口又是如何接收呢?哪位大虾舍得源代码最好,感谢啦。
- 关于C++的new和delete的问题
- 如何在桌面的右下角显示指定大小一个对话框
- 【转帖】无限小数的产生原因
spTest.Release() 的形式spTest.p->Release() 没有最后 = NULL的赋值操作,
但在spTest析构的时候,因spTest.p不为 NULL, 会试图再一次释放内部的com指针,很容易引起程序崩溃