MSXML

  原文地址:http://www.usidcbbs.com/simple/?t1421.html

  MSXML的全名是:「Microsoft XML Core Services」,主要是用来执行或开发经由XML所设计的最新应用程序,很多游戏和应用都需要它的支持解析。这是一个6.0的微软官网下载地址http://www.microsoft.com/downloads/details.aspx?FamilyID=d21c292c-368b-4ce1-9dab-3e9827b70604&displaylang=zh-cn

问题来源

  在微软的官方blog中对于MSXML的版本进行一些说明,连微软自己也承认,目前的MSXML版本太过于混乱了,以致于很难使用。

版本信息

  MSXML是与浏览器或者Office相关的,大部分MSXML是与浏览器相关,只有MSXML5是主要为Office2003开发的,因此如果想要使用MSXML5.DLL来作为浏览器的访问,并不被微软推荐,微软希望使用最近的MSXML6来操作XML,但是由于2001年,推出IE6.0(也就是XP上的,2k系统带的是IE5.0版本)时带的是MSXML3.DLL版本,因此大部分系统都是支持MSXML3.DLL的。

哪个合理

  目前的系统中,很多时候MSXML3.DLL、MSXML4.DLL、MSXM5.DLL、MSXML6.DLL都是存在于系统中,编程中选择合理的XML版本,可以减少因为不同版本带来的差异形成问题的查找时间。微软推荐使用MSXML3.DLL和MSXML6.DLL,一个是最广泛的,一个是最新的。

  在VC中使用import导入DLL后,可以使用上面的MSXML,但是需要注意的是__uuidof(MSXML2::DOMDocument)创建IXMLDOMDocumentPtr对象时的一些问题。即使你在文件开头用import导入了MSXML4.DLL或者其他版本,__uuidof(MSXML2::DOMDocument)加载的仍旧是MSXML3.DLL中的接口对象,微软的原话:The versionindependent ProgID is always bound to MSXML 3 (a lot of people think it picks up the latest MSXML that is on the box).  This means the version independent ProgID and the “3.0” ProgIDs will return the same object.

  因此,无论使用什么版本创建DOMDocument,必须制定其版本号。例如MSXML4.DLL使用的MSXML2::DOMDocument40来获取uuid,即 __uuidof(MSXML2::DOMDocument40)。使用其他版本的MSXML,可以先使用__uuidof(MSXML2::DOMDocument)来生成tlh文件,之后在tlh文件中查找要正确使用的DOMDocument。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值