C++11 用c+编写了两个不同的库(dll)+;。当我访问第三个库中的两个dll时,出现了重新定义错误 我在C++中编写了2种不同的库(DLL)。现在我正在访问第三个库中的两个dll

C++11 用c+编写了两个不同的库(dll)+;。当我访问第三个库中的两个dll时,出现了重新定义错误 我在C++中编写了2种不同的库(DLL)。现在我正在访问第三个库中的两个dll,c++11,C++11,但在这两个dll中都有相同名称的相同枚举。当我访问第三个dll中的两个dll时。枚举冲突,错误为“错误c2365:重新定义;以前的定义为“枚举器” 谢谢如果您的问题是“我如何解决此问题?”,有两种解决方案: 首先,可以为作用域化的枚举使用不同的名称:enum class en1{…}在DLL1中,以及enum class en2{…}在DLL2中 您可以将这些枚举(作用域与否)放在不同的名称空间中,但名称相同:名称空间ns1{enum en1{…}在DLL1和名称空间ns2{enum en1{…

但在这两个dll中都有相同名称的相同枚举。当我访问第三个dll中的两个dll时。枚举冲突,错误为“错误c2365:重新定义;以前的定义为“枚举器”

谢谢

如果您的问题是“我如何解决此问题?”,有两种解决方案:

  • 首先,可以为作用域化的枚举使用不同的名称:
    enum class en1{…}
    在DLL1中,以及
    enum class en2{…}
    在DLL2中
  • 您可以将这些枚举(作用域与否)放在不同的名称空间中,但名称相同:
    名称空间ns1{enum en1{…}
    在DLL1和
    名称空间ns2{enum en1{…}
  • 我相信还有很多解决办法