可执行exe程序和一个xml文件(collectpoint.xml)在同一个目录下,通过
extern WinApp theApp;
XmlFilePath = theApp.GetAppPath();
获取应用程序路径XmlFilePath。
现在程序需要调用xml文件,load里面怎么写啊,调了很久都没弄好。运行提示Failed load!请高手指点。CComPtr<MSXML::IXMLDOMDocument>  m_iXMLDoc;
HRESULT hr = m_iXMLDoc.CoCreateInstance(__uuidof( DOMDocument ));    //创建文档对象VARIANT_BOOL bFlag;
hr = m_iXMLDoc->load(CComVariant(L"collectpoint.xml"), &bFlag); //load xml文件if(hr == NULL)
     ::AfxMessageBox(_T("Failed load!"),MB_OK,0);

解决方案 »

  1.   

    hr == NULL?这判断有问题吧,用FAILED(hr)。
    返回0是成功啊。
      

  2.   

    加了这两个:
    #include <msxml2.h>
    #import "msxml.dll" raw_interfaces_only不知道是不是。
      

  3.   

    //创建XML文档
    MSXML2::IXMLDOMDocumentPtr pXmlDom;
    //创建XML文档的根元素
    MSXML2::IXMLDOMElementPtr xmlRoot;
    //根元素名称
    CComBSTR rootname;
    //根元素的子结点链表
    MSXML2::IXMLDOMNodeListPtr pNodeList; 
    //根元素的子结点
    MSXML2::IXMLDOMNodePtr pNode; 
    CoInitialize(NULL);
    // TODO: Add extra validation here //创建XML文档实例
    HRESULT hr=CoCreateInstance(__uuidof(MSXML2::DOMDocument40),NULL,CLSCTX_INPROC_SERVER,
    __uuidof(MSXML2::IXMLDOMDocument),(void**)&pXmlDom);
    if(!SUCCEEDED(hr))
    {
    ::MessageBox(NULL, "无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!", "error", MB_OK); 
    return -1;
    }
    pXmlDom->put_async(VARIANT_FALSE); 
    pXmlDom->put_validateOnParse(VARIANT_FALSE);
    pXmlDom->put_resolveExternals(VARIANT_FALSE);
    //将XML文档导入内存中
    pXmlDom->load((_variant_t)str);