none
VC使用msxml,用tlb文件就找不到MSXML2命名空间? RRS feed

  • 问题

  • 我在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;
    }

    2013年4月22日 3:40

答案

全部回复