佚名通过本文主要向大家介绍了智能指针,我的世界智能指针,智能指针原理,auto ptr智能指针,qt 智能指针等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 智能指针创建COM实例,内存不能释放的问题
描述:
解决方案1:
描述:
在使用MSXML时如下
CMyDlg::OnOK()
{
IXMLDOMDocumentPtr pXmlDom;
pXmlDom.CreateInstance(__uuidof(DOMDocument2));
// CDialog::OnOK();
}
就是在一个基于对话框工程的OnOK函数中用这两行,理论上函数执行完,智能
应该释放内存才对,但第一次运行总会吃掉1M多内存,然后每执行一次就会吃
掉4K,这是为何?有没有办法释放掉内存?
解决方案1:
CComPtr<IXMLDOMDocumentPtr> pXmlDom;
pXmlDom->CreateInstance...
IXMLDOMDocumentPtr pXmlDom;
pXmlDom.CreateInstance(__uuidof(DOMDocument2));
pXmlDom = NULL;
这个很好办!你在用完时这样一下:
pXmlDom = NULL; //当给只能指针赋值为NULL它内不会调用release,因为只能指针重载了=,切忌不要自己手动掉用release!好了,去试试吧!