我正在尝试编译一个我继承的使用MSXML2的MSXML2项目。这是一个ATL .EXE项目。头文件包括以下内容:
#include "msxml2.h"
using namespace MSXML2;
预处理器定义包括__USE_MSXML2_NAMESPACE__,我将其添加到项目中,因为没有它,MSXML2命名空间是未定义的。在试图构建此项目时,我收到了表单中的许多错误:
error C2039:'IXMLDOMNode‘:不是'MSXML2'的成员
这些错误是由以下声明产生的
CComPtr<MSXML2::IXMLDOMNode> pNode;
没有找到其他成员,包括IXMLDOMDocument和IXMLDOMNode。
发布于 2011-01-26 04:20:54
你可以解决这个问题
msxml2.h
头。USE_MSXML2_NAMESPACE
和using namespace MSXML2
代码。CComPtr<IXMLDOMNode> pNode;
不带命名空间。H 210G 211
我已经看到许多项目使用导入关键字来要求VisualC++使用MSXML2命名空间从TBL生成头文件。但是,使用header和链接到lib是我最喜欢的避免使用导入关键字的方法,因为它不是c++标准。底线是避免在刷新旧项目时将这两种方法混合在一起,这将导致类似的问题。
https://stackoverflow.com/questions/4789532
复制相似问题