【问题标题】:Visual Studio 6 C ++ error C2011 with msxml带有 msxml 的 Visual Studio 6 C++ 错误 C2011
【发布时间】:2021-08-19 07:32:39
【问题描述】:

我继承了一个旧的 Visual Studio 6 C++ 程序。我有一台 Windows 7 电脑。我在我的电脑上安装了一个 XP 虚拟机。已安装 Visual Studio 6 和 Service Pack 6。我正在尝试在调试模式下构建 .exe 文件。我继续收到错误

C2011: 'IXMLDOMImplementation' : 'struct' type redefinition in msxml4.tlh file. 

所有结构和枚举定义都发生错误。 KB 269194 指出如果以并行模式安装了较新版本的 MSXML,则必须显式使用该版本的全局唯一标识符 (GUID) 或 ProgID 来运行示例代码。 GUID 使用如下 declspec(uuid()) 指定。 结构 __declspec(uuid("50ea08b0-dd1b-4664-9a50-c2f40f4bd79a")) IXMLDOMSchemaCollection2:IXMLDOMSchemaCollection { 我认为我不应该进行任何代码更改。我已经在虚拟机上安装了 MSXML4。知识库文章 269194 讨论了该问题。它没有帮助。

文件 msxml4.h、msxml4.cpp、msxml4.dll、msxml4.tlh 和 msxml.tli 都在项目目录中。我确实在我的虚拟 XP 机器上安装了 MSXML4。我已将这些文件添加到此工作区的 Visual Studio 中的包含路径中。任何想法都非常感谢。

【问题讨论】:

  • 也许不可能。某些环境需要经过非常测试(并且结果是旧的)操作系统、编译器等,或者使用新软件进行认证和重新认证的软件将非常昂贵。
  • 那里有一些指针:stackoverflow.com/questions/980082/…。我的猜测:尝试将每个包含/导入语句定位到 msxml3,这可能与 4.0 冲突。
  • 我的同事解决了这个问题。首先,做一个干净的构建。其次,构建EXE文件。

标签: c++ visual-c++ visual-studio-6


【解决方案1】:

这可能是#import xml 和/MP 多处理器编译的组合。 两者不兼容。 识别任何具有#import 的模块。在没有 /MP 开关的情况下构建它们。 其他模块可以安全地使用 /MP 开关。

【讨论】:

    猜你喜欢
    • 2021-01-18
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    相关资源
    最近更新 更多