【问题标题】:problem with double include of <string.h><string.h> 的双重包含问题
【发布时间】:2021-08-22 11:47:38
【问题描述】:

我正在使用 Visual Studio 2019 社区。我正在开发一个基于 MFC 对话框的项目。我想将现有的 csv 文件转换为 pdf,为此我想使用 Aspos.Cells 库。问题是当我包含:#include 因为我已经包含了这个库:#include“afxdialogex.h”,我收到一个错误,CString 类型不明确,我认为问题是这两个文件都有双重包含。有什么办法可以解决吗?有没有更好的方法来为基于对话框的应用程序(如 MFC)使用舒适的界面,但另一方面,让我轻松地生成 pdf 文件?

谢谢

【问题讨论】:

  • MFC/ATL 或系统标头的多个包含不太可能是您的错误的原因(这些标头将具有解决此类问题的保护措施)。更有可能的是Aspose.Cells.h 定义了它自己的 版本的CString
  • 哦,我明白了。谢谢你的回答,不知道有没有办法解决这个冲突?我一直在尝试解决这个问题几个小时,但找不到任何解决方案
  • 问题是您的 ODR 违规。 CString 不是类型。根据您的环境,它可以扩展到CStringACStringW真正的 问题是您使用的是CString。停止这样做,您的问题就会神奇地消失。

标签: visual-studio mfc type-conversion


【解决方案1】:

正如 Adrian Mole 所提到的,问题确实在于Aspose.Cells.h 定义了自己的CString 版本。正如 IInspectable 提到的那样,为我解决问题的是使用 CStringW。谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 2023-03-26
    • 1970-01-01
    • 2018-01-30
    相关资源
    最近更新 更多