我刚开始做XML,碰到很多问题。
#pragma <msxml3.dll>
using namespace MSXML2;
结果连CLSID_DOMDocument、IID_IXMLDOMNode等GUID都不认识,哪儿定义的呀?
我的是IE5. 问题点数:100、回复次数:18Top
1 楼door_proxy(重新再来)回复于 2005-12-14 10:05:18 得分 0
自己先顶Top
2 楼happyparrot(快乐鹦鹉)回复于 2005-12-14 10:08:53 得分 0
只有msxml3.dll,没有lib文件么?用#import导入该库吧Top
3 楼door_proxy(重新再来)回复于 2005-12-14 10:20:06 得分 0
就是加了#pragma comment(lib,"msxml.lib")还是不认识。Top
4 楼happyparrot(快乐鹦鹉)回复于 2005-12-14 10:22:45 得分 10
用#import直接引入动态库。
如同引入ADO动态库:
#import "c:/program files/common files/system/ado/msado15.dll"这样。Top
5 楼hongyan80(鸿雁)回复于 2005-12-14 10:29:32 得分 10
安装msxml3后,直接使用COM接口访问Top
6 楼Drong([伤口])回复于 2005-12-14 10:37:20 得分 0
顶Top
7 楼door_proxy(重新再来)回复于 2005-12-14 10:39:29 得分 0
我是装完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,
怎么办?Top
8 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-12-14 13:23:51 得分 10
包含.h 和.c文件Top
9 楼vans322(小范)回复于 2005-12-14 15:04:02 得分 10
注册一下 dllTop
10 楼pomelowu(羽战士)回复于 2005-12-14 15:31:48 得分 20
Get Ready to Work with MSXML:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/def1c84a-6f8a-4b4d-b919-d1a703118214.aspTop
11 楼door_proxy(重新再来)回复于 2005-12-14 17:08:27 得分 0
注册与否跟认识CLSID_DOMDocument没什么关系吧。Top
12 楼gzlyb(冰风)回复于 2005-12-15 01:58:40 得分 10
注册与否跟认识CLSID_DOMDocument没什么关系吧
-------------------------------------------
没关系。但如果不注册,无法使用DLL,除非用LoadLibrary(...)
如上各位所说,用#import "路径/msxml3.dll",就认识CLSID_DOMDocument了Top
13 楼tsys2000(☆唐僧☆)回复于 2005-12-15 08:28:31 得分 0
学习中Top
14 楼leechiyang(逮老鼠的狗算不算好猫?)回复于 2005-12-15 08:38:16 得分 30
// 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;
}
Top
15 楼vans322(小范)回复于 2005-12-15 09:57:52 得分 0
import 最好不要绝对路径Top
16 楼door_proxy(重新再来)回复于 2005-12-15 15:59:27 得分 0
to gzlyb(冰风):
没关系。但如果不注册,无法使用DLL,除非用LoadLibrary(...)
如上各位所说,用#import "路径/msxml3.dll",就认识CLSID_DOMDocument了
--------------------------------------------------------------------
我的msxml3.dll在winnt/system32下,且手工注册了一次,提示也注册成功,但还是不
认识CLSID_DOMDocument。Top
17 楼door_proxy(重新再来)回复于 2005-12-15 16:00:10 得分 0
能不能帮我看看CLSID_DOMDocument在什么文件里定义的?