首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

,IXMLDOMDocument:appendchild报access violation异常

2012-02-19 
高手救命,十万火急,IXMLDOMDocument::appendchild报access violation错误我刚学XMLDOM编程,写了个范例程序

高手救命,十万火急,IXMLDOMDocument::appendchild报access violation错误
我刚学XMLDOM编程,写了个范例程序,就碰到了问题,怎么都解决不了,上来求救,请高手出手帮忙!

// ListDirToXML.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#import "msxml3.dll" named_guids
using namespace std;
using namespace MSXML2;

int main(int argc, char* argv[])
{
MSXML2::IXMLDOMDocument *pXMLDomDoc=NULL;
HRESULT hr;

CoInitialize(NULL);

hr=CoCreateInstance(
__uuidof(DOMDocument30),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IXMLDOMDocument),
(void**)&pXMLDomDoc);
if(FAILED(hr))
{
cout<<"CoCreateInstance Failed"<<endl;
CoUninitialize();
return 0;

}

pXMLDomDoc->put_async(VARIANT_FALSE);
pXMLDomDoc->preserveWhiteSpace=VARIANT_TRUE;


pXMLDomDoc->loadXML(_T("<root></root>"));


MSXML2::IXMLDOMElement *pXmlRoot=NULL;
pXmlRoot=pXMLDomDoc->GetdocumentElement();

MSXML2::IXMLDOMElement *pXmlA=NULL;
pXmlA=pXMLDomDoc->createElement(_T("A"));
pXmlRoot->appendChild(pXmlA);//就是这个语句报错,我怎么也看不出来哪里违规了!顺便说一句,我用的是古老的VC6.0。

pXMLDomDoc->save(_T("test.xml"));


CoUninitialize();
return 0;
}




[解决办法]
MSXML2::IXMLDOMElement *pXmlRoot=NULL; 
pXmlRoot=pXMLDomDoc->GetdocumentElement(); 

你这个把智能指针赋值给了普通指针,改为

MSXML2::IXMLDOMElementPtr pXmlRoot=NULL; 
pXmlRoot=pXMLDomDoc->GetdocumentElement(); 

热点排行