6

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

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

XX 可以在哪里

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

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

知道如何摆脱这些警告吗?他们从我实际上很难看到的代码中发出真正的警告——知道我的应用程序有 104 个警告,这让我有一种可怕的感觉!

4

3 回答 3

4

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

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

// code affected by bug

#pragma warning( pop )
于 2008-08-20T11:51:54.950 回答
3

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

项目设置 -> C/C++ -> 高级 -> 禁用特定警告:4341

于 2008-08-20T11:49:44.237 回答
0

等待编译器修复或不#include触发它的代码。

[一种冗长的说法,你可能不能。]

于 2008-08-20T23:34:11.983 回答