首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误C2011:‘MSXML2 2::IXMLDOMImplementation’:'struct‘类型重新定义

错误C2011:‘MSXML2 2::IXMLDOMImplementation’:'struct‘类型重新定义
EN

Stack Overflow用户
提问于 2009-06-11 09:02:52
回答 3查看 3.8K关注 0票数 6

我将我的C++项目更改为使用MSXML 6而不是早期的MSXML 3,这个项目以前在VC6中,现在被迁移到VS 2008。

代码语言:javascript
复制
# import "msxml3.dll"

这被替换为

代码语言:javascript
复制
# import "msxml6.dll"

在编译这个项目之后,我得到了这个错误和其他几个类似的错误C2011:‘MSXML2 2::IXMLDOMImplementation’:'struct‘类型重新定义

上面的错误在msxml3.tlh文件中。

1)为什么还在使用msxml3?

2)我将问题缩小到MSXML.h,它以某种方式自动包含在我的项目中。为什么会这样呢?

3) MSXML.h中引用的是哪个版本的MSXML?

4)为什么VC++会自动包含这么多头文件?如果我不希望包含一些头文件,该怎么办?

5)在MSXML6项目中使用c++的正确方法是什么?#导入、头文件?

6)如何解决这个问题?

随时给我.net。干净多了。一个VC++项目就是一团糟。

EN

回答 3

Stack Overflow用户

发布于 2009-06-11 09:33:38

看看MSXML上的MS篡改

他们建议像导入.dll一样导入.thl和.tli文件。确保你删除了那些。

确保任何包含的目录指向正确的位置。

确保您没有在项目的其他地方导入msxml3。

要找到msxml.h do CTRL + SHIFT +F并搜索整个解决方案中的“msxml”<- -注意缺少.h,因为如果您已经正确导入了它,则应该按照以下方式完成:

代码语言:javascript
复制
#include <msxml6.dll>

试试这些..。

票数 2
EN

Stack Overflow用户

发布于 2009-06-15 22:08:32

检查#import指令的语法。可以在导入指令(或rename_namespace)上使用rename属性重命名导入的元素。它将解决与重复元素的冲突。

见此处:在MSDN中

有时更改包含顺序(是的-通过注释掉包含语句和导入语句的不同顺序)

不要与MS的错误斗争,只要跨越它们;)

票数 2
EN

Stack Overflow用户

发布于 2009-06-12 08:08:41

我尝试重命名msxml.h并进行构建。这将显示包含msxml.h的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/980082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档