msxml函数版本有关问题

msxml函数版本问题
看过好几个有关读写xml文件的例子,有的只要#import <msxml4.dll>using namespace MSXML2;这两句就可以,而有在vs2005下面的只要#include <msxml.h>就可以,而且函数的参数在用dll的时候,比如 xmlRoot=pDoc->createElement((_bstr_t)"Book");只要一个参数,移植到只include头文件的另一个工程里却又说参数不够 这里面有怎么个道道啊 大侠们给理一理 我猜就是两种方式函数声明不一样 但是微软为什么要弄得这么费劲呢~~~~~~~~~~

------解决方案--------------------
MS的版本间兼容就是不大好啊,象VC2003以前的工程用到VC2005就要做相当大的改动。
------解决方案--------------------
#import <msxml4.dll>导出的函数会做一次封装,返回值是out类型的出参,HRESULT失败的时候抛出异常。#include <msxml.h>导入的函数就是COM的原始接口,返回值是HRESULT。相对来说前者比较方便,因为还会提供给你给你一个智能指针的封装。
------解决方案--------------------
最好用其他几个xml读取库, 跨平台不说,还有源码,有问题好排查。如:Tinyxml, Markup
------解决方案--------------------
在此提供几个网址: (仅供参考)
1 XMLTree.exe 是一个示例演示如何使用 MSXML DOM 接口,从 c + + 应用程序。
http://support.microsoft.com/kb/246230#top 

2 VC使用Cmarkup生成、解析xml资料
http://download.****.net/source/992877 

3 CMarkup官网地址
http://www.firstobject.com/