VC++通过MSXML6来操作xml需要注意的内存泄漏问题

VC++通过MSXML6来操作xml需要注意的内存泄漏问题

1. 创建IXMLDOMDocument 对象,注:在使用完成后需要release,而不是立马release,立马释放了就没法使用了

     HRESULT hr;
IXMLDOMDocument *pXmlDoc = NULL;
 
hr = CoCreateInstance(__uuidof(DOMDocument),NULL,CLSCTX_INPROC_SERVER,

__uuidof(IXMLDOMDocument),(void**)&pXmlDoc);


        pXmlDoc->Release();

2. 获取IXMLDOMNode, 同上,需要使用完成后释放

     IXMLDOMNode* pXMLFirstChild = NULL;

pIXMLDOMDocument->get_firstChild(&pXMLFirstChild);


        pXMLFirstChild.Release();

3. 获取属性集IXMLDOMNamedNodeMap,  同上,需要使用完成后释放

     IXMLDOMNamedNodeMap* pXMLAttributeMap = NULL;
if (pXMLFirstChild)
{
pXMLFirstChild->get_attributes(&pXMLAttributeMap);

}


        pXMLAttributeMap.Release();

4. 创建属性IXMLDOMAttribute, 同上,需要使用完成后释放

IXMLDOMAttribute* pEncodeAttribute=NULL;
pIXMLDOMDocument->createAttribute( L"encoding",&pEncodeAttribute);

pXMLAttributeMap->setNamedItem(pEncodeAttribute, &pXMLEncodNode);


        pEncodeAttribute.Release();


5. 获取节点内容,需要释放

BSTR bstr = NULL;

pNode->get_text( &bstr);

if(bstr)

{

SysFreeString(bstr);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值