【发布时间】:2011-01-25 02:50:57
【问题描述】:
我正在尝试编译我继承的使用 MSXML2 的 VC++ 项目。这是一个 ATL .EXE 项目。头文件包括以下内容:
#include "msxml2.h"
using namespace MSXML2;
预处理器定义包括 __USE_MSXML2_NAMESPACE__,我将其添加到项目中,因为没有它,MSXML2 命名空间是未定义的。尝试构建此项目时,我收到许多表单错误:
错误 C2039:“IXMLDOMNode”:不是“MSXML2”的成员
这些错误是由如下声明产生的
CComPtr<MSXML2::IXMLDOMNode> pNode;
未找到其他成员,包括 IXMLDOMDocument 和 IXMLDOMNode。
【问题讨论】:
-
能否包含 msxml2.h,删除 USE_MSXML2_NAMESPACE 并使用命名空间 MSXML2,并使用 CComPtr
pNode;?那应该可以。 -
谢谢!这确实有效,你能简单解释一下出了什么问题吗?
标签: visual-c++ atl msxml