在编译我的C ++ .Net应用程序时,我收到104个类型警告:
Warning C4341 - 'XX': signed value is out of range for enum constant
XX可以
无论我做什么,我似乎无法删除这些警告。当我双击它们时,我需要使用OdbcParameters的部分代码 - 当我尝试使用其他所有东西的测试项目但没有OdbcParameters它没有给出警告时。
知道如何摆脱这些警告吗?他们正在用我实际写得难以看到的代码发出真实的警告 - 这让我觉得我的应用有104个警告感觉很糟糕!
答案 0 :(得分:4)
这是compiler bug。这是another post确认这是一个已知问题。我在我的一个项目中遇到了同样的问题,除非你有办法避免使用OdbcParameter,否则无法阻止它被触发。仅抑制错误警告的最保守的方法是使用
#pragma warning( push )
#pragma warning( disable: 4341 )
// code affected by bug
#pragma warning( pop )
答案 1 :(得分:3)
在Visual Studio中,您始终可以通过转到:
禁用特定警告项目设置 - > C / C ++ - >高级 - >禁用特定警告:4341
答案 2 :(得分:0)
要么等待编译器修复,要么等待#include
触发它的代码。
[一种冗长的说法你可能不会这样做。]