C++ADO智能指针内存是否会泄漏
例如在一个循环中测试使用_ConnectionPtr智能指针,声明对象并创建
_ConnectionPtr pConnect;
HRESULT hr = pConnect.CreateInstance(_uuidof(Connection));
if (!SUCCEEDED(hr) || pConnect == NULL)
{
return ;
}
然后释放
if (pConnect != NULL)
{
if (pConnect->State & adStateOpen) //因为没有Open(),所以没有进入
{
pConnect->Close();
}
pConnect.Release(); //此处可注释
pConnect = NULL;
}
循环多次后,发现内存不断增加;
是否有人研究过这个现象?
请高手指点。
_ConnectionPtr pConnect;
HRESULT hr = pConnect.CreateInstance(_uuidof(Connection));
if (!SUCCEEDED(hr) || pConnect == NULL)
{
return ;
}
然后释放
if (pConnect != NULL)
{
if (pConnect->State & adStateOpen) //因为没有Open(),所以没有进入
{
pConnect->Close();
}
pConnect.Release(); //此处可注释
pConnect = NULL;
}
循环多次后,发现内存不断增加;
是否有人研究过这个现象?
请高手指点。
...全文
相关推荐
ADO 开发指南
注意事项在编程时需要注意以下几点:- 确保正确导入ADO库文件,以便使用ADO相关的类型定义。- 正确处理COM初始化和终止,避免内存泄漏。- 恰当地设置连接字符串,以及检查数据库服务是否正常运行。
深入理解ADO对象模型与COM智能指针
本文深入探讨了使用#import指令与ADO对象模型交互的过程,解析了GUID的使用、智能指针的声明及其与COM组件的连接方式。通过分析MSADO15.TLH和MSADO15.TLI文件,展示了如何在C++中有效地使用ADO来操作数据库。
C++ ADO连接Oracle数据库完整实战项目
不能依赖ADO自动转换。
ADO程序员参考
标签中的"C++"提示了我们需要关注C++特定的集成问题,如内存管理和异常处理。在C++中,使用智能指针(如`CComPtr`)可以自动管理COM对象的生命周期,避免内存泄漏。
C++ 2005管理系统代码
**内存管理**:查看代码是否正确使用了智能指针,以及何时分配和释放内存,避免悬挂指针和内存泄漏。4.


