VC运用msxml,用tlb文件就找不到MSXML2命名空间
VC使用msxml,用tlb文件就找不到MSXML2命名空间?
我在win7下试图用msxml,又要考虑在xp下的兼容性问题,网上两种方案,
第一种用宏定义
#if (_WIN32_WINNT >= 0x0600) //if vista/win7
#import "msxml6.dll"
#else //if xp
#import "msxml.dll"
#endif
第二种
#import <msxml.tlb>
据说会自己去找对应系统下的dll,
但是现在的问题在于,如果用第二种方法,系统直接报告命名空间MSXML2找不到,为啥呢
------解决方案--------------------
不要据说,你自己看一下导入后生成的文件(msxml.tlh),就会发现导入的命名空间是MSXML而不是MSXML2!
我在win7下试图用msxml,又要考虑在xp下的兼容性问题,网上两种方案,
第一种用宏定义
#if (_WIN32_WINNT >= 0x0600) //if vista/win7
#import "msxml6.dll"
#else //if xp
#import "msxml.dll"
#endif
第二种
#import <msxml.tlb>
据说会自己去找对应系统下的dll,
但是现在的问题在于,如果用第二种方法,系统直接报告命名空间MSXML2找不到,为啥呢
#include "stdafx.h"
//#include "msxml2.h"
//win7上没有msxml.dll只有msxml6.dll
/*#if (_WIN32_WINNT >= 0x0600) //if vista/win7
#import "msxml6.dll"
#else //if xp
#import "msxml.dll"
#endif */
//#import <msxml.tlb> //导入msxml库,自动根据系统查找msxml(int).dll
using namespace MSXML2;
int _tmain(int argc, _TCHAR* argv[])
{
MSXML2::IXMLDOMDocumentPtr pDoc;
MSXML2::IXMLDOMElementPtr xmlRoot ;
return 0;
}
------解决方案--------------------
不要据说,你自己看一下导入后生成的文件(msxml.tlh),就会发现导入的命名空间是MSXML而不是MSXML2!