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

rob*_*ntw 6 .net c++ visual-c++

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

Warning C4341 - 'XX': signed value is out of range for enum constant
Run Code Online (Sandbox Code Playgroud)

XX可以

  • WCHAR
  • BIT
  • BINARY
  • GUID
  • ...

无论我做什么,我似乎无法删除这些警告.当我双击它们时,我需要使用OdbcParameters的部分代码 - 当我尝试使用其他所有东西的测试项目但是没有OdbcParameters它没有给出警告时.

知道如何摆脱这些警告吗?他们用我实际写得难以看到的代码发出了真正的警告 - 这让我觉得我的应用有104个警告!

Aid*_*yan 4

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

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

// code affected by bug

#pragma warning( pop )
Run Code Online (Sandbox Code Playgroud)