警告C4341-'XX':带符号的值超出了枚举常量的范围

时间:2020-03-05 18:41:03  来源:igfitidea点击:

当编译我的C ++ .Net应用程序时,我收到104个类型的警告:

Warning C4341 - 'XX': signed value is out of range for enum constant

XX可以在哪里

  • WCHAR
  • 少量
  • 二进制
  • 图形用户界面
  • ...

无论如何,我似乎都无法删除这些警告。当我双击它们时,如果我尝试使用其余所有东西但没有OdbcParameters的测试项目,则将我带到使用OdbcParameters的代码的任何一部分,它不会给出警告。

知道我如何摆脱这些警告吗?他们正在用我实际上很难看到的代码发出真正的警告,并且知道我的应用程序有104条警告,这简直让我感到非常恐怖!

解决方案

回答

在Visual Studio中,我们始终可以通过以下方式禁用特定的警告:

Project settings -> C/C++ -> Advanced -> Disable Specific warnings: 4341

回答

这是一个编译器错误。这是另一篇确认这是已知问题的帖子。在我的一个项目中,我遇到了同样的问题,除非我们有某种避免使用OdbcParameter的方法,否则无法阻止它被触发。仅禁止越野车警告的最保守方法是使用

#pragma warning( push )
#pragma warning( disable: 4341 )

// code affected by bug

#pragma warning( pop )

回答

等待编译器修复,也不要等待触发它的" #include"代码。

[冗长的说法可能无法做到。]