同样的代码,以前能编译;在别人的机器上也可以编译。我这里就是不行。为什么呢#import "\Dayang\Dll\msxml3.dll"
using namespace MSXML2;
class CXMLParse
{
public:
CXMLParse();
virtual ~CXMLParse(); // 不行,编译无法通过。提示:error C2872: 'IXMLDOMElementPtr' : ambiguous symbol
BOOL GetNodeAttribute(IXMLDOMElementPtr pRoot, CString strNodePath, CString strAttributeName, CString& strAttributeValue);// 获取指定节点指定属性的值

// 可以
CString GetNodeAttribute(MSXML2::IXMLDOMElementPtr pRoot, CString strNodePath, CString strAttributeName);// 获取指定节点指定属性的值
};

解决方案 »

  1.   

    "\Dayang\Dll\msxml3.dll"
    这个文件是否存在?
      

  2.   

    1、文件肯定是存在的
    2、我将IXMLDOMElementPtr pRoot改为MSXML2::IXMLDOMElementPtr编译通过
    我看了一下,Unicode_Debug下始终同时有
    msxml.tlh
    msxml.tli
    msxml3.tlh
    msxml3.tli
      

  3.   

    楼主可以这样试一试,先clean  然后rebuild all, 这样也许就可以了。
      

  4.   

    可能是windows的版本不一致造成的,比如:xp的家用版和专业版的差别,你先试试在这方面找原因,也可以从能够编译的机器中拷贝msxml2.dll和msxml3.dll到你的机器中替换同名文件(记得先备份你自己的原文件)试试。