请教! 使用 msxml 内存泄漏问题

雷振林 2003-05-27 08:03:13
使用了 msxml ,简单示例如下:
void func1()
{
Msxml2_tlb::IXMLDOMDocumentPtr poutDomDoc;
poutDomDoc.CreateInstance(Msxml2_tlb::CLSID_DOMDocument);
// Create an emty DOM
poutDomDoc->loadXML(L"");
// Add the xml processing instructions ("<?xml version="1.0"?>");
Msxml2_tlb::IXMLDOMProcessingInstructionPtr pProcessInstr;
pProcessInstr = poutDomDoc->createProcessingInstruction(L"xml", L"version='1.0' encoding='gb2312'");
poutDomDoc->appendChild( pProcessInstr );

// Creating root element
Msxml2_tlb::IXMLDOMElementPtr poutRootElement;
poutRootElement = poutDomDoc->createElement(L"root");
poutDomDoc->documentElement = poutRootElement;

//create data element
pNode = poutDomDoc->createElement(L"pages");
poutRootElement->appendChild(pNode);

tmpFile = ExtractFilePath(Application->ExeName) + "temp\\" + AnsiString("tmp.xml");
TVariantInParam XMLFileName( tmpFile );
hr = poutDomDoc->save( XMLFileName);

}

运行时发现,该函数运行多次后,发生内存泄漏现象,请教大家这是为何?如何处理? 急!。。。
...全文
48 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
big_d 2003-08-24
  • 打赏
  • 举报
回复
本来我也是有你一样的目的,后来为了简单我用VC封装一下(毕竟是COM,而且MSXML也是微软的东西,所以用VC方便),做了个dll,在VC下的代码
IXMLDOMDocumentPtr pxDoc;
CoInitialize(NULL);
pxDoc->CreateInstance("msxml2.domdocument");

....

CoUninitialize();
中有个CoInitialize和CoUninitialize,配对。给你个参考。BCB下也应该有类似的函数。
雷振林 2003-05-28
  • 打赏
  • 举报
回复
请教大家了, 我现在很痛苦,找 内存泄露 真要命。

大虾们,救命啊!
雷振林 2003-05-27
  • 打赏
  • 举报
回复
up

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧