我定义了一个类的成员变量 MSXML2::IXMLDOMDocumentPtr m_pDoc;
然后利用该指针m_pDoc->save(*);保存生成一个xml文件可这样只有在程序第一次运行时候才正确,第二次用的时候发生错误,好象内存溢出了。是不是第二次用前要对m_pDoc清空?用哪个函数来清空?

解决方案 »

  1.   

    新建个空console工程,建个文件,粘上去就能用//MsXML parser
    #include <MsXml2.h>//native COM support
    #include <comdef.h>
    #include <comutil.h>//ATL support
    #include <atlbase.h>
    //WTL::CString
    //#include <atlapp.h>
    //extern WTL::CServerAppModule _Module;
    //#include <atlmisc.h>int main(void)
    {
    HRESULT hr;
    CoInitialize(NULL);
    IXMLDOMElement* pXMLElement = NULL;
    CComPtr<IXMLDOMDocument> pdoc;
    IXMLDOMNode* ptestnode; VARIANT_BOOL isSuccessful; pdoc.CoCreateInstance(__uuidof(DOMDocument));
    hr = pdoc->load(CComVariant("c:\\text.xml"),&isSuccessful);
    hr = pdoc->createElement(CComBSTR("showset"),&pXMLElement);
    hr = pdoc->appendChild(pXMLElement,&ptestnode);
    hr = pdoc->save(CComVariant("c:\\text.xml"));
    hr = pdoc->save(CComVariant("c:\\text2.xml")); //CoUninitialize();
    return 0;
    }
      

  2.   

    //CoUninitialize(); 
    为啥注释掉?