我刚开始做XML,碰到很多问题。
#pragma <msxml3.dll>
using namespace MSXML2;结果连CLSID_DOMDocument、IID_IXMLDOMNode等GUID都不认识,哪儿定义的呀?
我的是IE5.

解决方案 »

  1.   

    只有msxml3.dll,没有lib文件么?用#import导入该库吧
      

  2.   

    就是加了#pragma comment(lib,"msxml.lib")还是不认识。
      

  3.   

    用#import直接引入动态库。
    如同引入ADO动态库:
    #import "c:\program files\common files\system\ado\msado15.dll"这样。
      

  4.   

    安装msxml3后,直接使用COM接口访问
      

  5.   

    我是装完windows2000系统后,winnt目录下就有msxml3.dll等文件,还需要装msxml3吗?
    IXMLDOMDocument    *pXmlDoc;pXmlDoc.CreateInstance(__uuidof(DOMDocument));  成功的hr = ::CoCreateInstance(CLSID_DOMDocument,NULL,CLSCTX_INPROC_SERVER,
    IID_IXMLDocument,(LPVOID*)&pXmlDoc);  
    换成第二种方式就不行了,不认识CLSID_DOMDocument,
    怎么办?
      

  6.   

    Get Ready to Work with MSXML:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/def1c84a-6f8a-4b4d-b919-d1a703118214.asp
      

  7.   

    注册与否跟认识CLSID_DOMDocument没什么关系吧。
      

  8.   

    注册与否跟认识CLSID_DOMDocument没什么关系吧
    -------------------------------------------
    没关系。但如果不注册,无法使用DLL,除非用LoadLibrary(...)
    如上各位所说,用#import "路径\msxml3.dll",就认识CLSID_DOMDocument了
      

  9.   

    // test1.cpp : Defines the entry point for the console application.
    //#include "stdafx.h"
    #include <iostream.h>
    #import "C:\\WINNT\\system32\\msxml3.dll"int main(int argc, char* argv[])
    {
    cout<<("Hello World!\n");
    int nRetCode = 1;
    CoInitialize(NULL);
    // TODO: code your application's behavior here.
    MSXML2::IXMLDOMDocumentPtr pDoc; 
    MSXML2::IXMLDOMElementPtr  xmlRoot;

    //创建DOMDocument对象
    HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));
    if(!SUCCEEDED(hr))
    {
    MessageBox(NULL, "无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!", "error", MB_OK); 


    //根节点的名称为china
    pDoc->raw_createElement((_bstr_t)(char*)"china", &xmlRoot);
    pDoc->raw_appendChild(xmlRoot, NULL);

    MSXML2::IXMLDOMElementPtr  childNode ;         
    pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode);
    childNode->Puttext("WuHan");//节点值
    childNode->setAttribute("population","8,000,000");//属性名,属性值
    childNode->setAttribute("area","10000");
    xmlRoot->appendChild(childNode);

    pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode);
    childNode->Puttext("ShangHai");
    childNode->setAttribute("population","12,000,000");
    childNode->setAttribute("area","12000");
    xmlRoot->appendChild(childNode);

    //保存到文件
    //如果不存在就建立,存在就覆盖
    pDoc->save("c:\\he.xml"); 


    return 0;
    }
      

  10.   

    to gzlyb(冰风):
    没关系。但如果不注册,无法使用DLL,除非用LoadLibrary(...)
    如上各位所说,用#import "路径\msxml3.dll",就认识CLSID_DOMDocument了
    --------------------------------------------------------------------
    我的msxml3.dll在winnt\system32下,且手工注册了一次,提示也注册成功,但还是不
    认识CLSID_DOMDocument。
      

  11.   

    能不能帮我看看CLSID_DOMDocument在什么文件里定义的?