2008-08-20 1 views
6

私のC++。NETアプリケーションをコンパイルする場合、私はタイプの104回の警告を得る:XXは- 「XX」:符号付きの値は、列挙型の範囲外である一定の

    することができ

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

  • WCHAR
  • LONG
  • BIT
  • BINARY
  • GUID
  • ...私は私が何でもこれらの警告を削除することができないよう

。私がそれらをダブルクリックすると、OdbcParametersを使用するコードの一部になります。テストプロジェクトを私の残りのものすべてで試すが、OdbcParametersは警告を出さない。

どのようにこれらの警告を取り除くことができますか?実際に私が見たことがないコードから実際の警告を出しています。そして、私のアプリには104の警告があることを知って、恐ろしい気持ちになります! Visual Studioで

答えて

4

これはcompiler bugです。ここにはanother postがあり、これは既知の問題であることを確認しています。私は自分のプロジェクトの1つで同じ問題を抱えており、OdbcParameterの使用を回避する何らかの方法がない限り、トリガーされないようにする方法はありません。唯一のバグの警告を抑制するための最も保守的な方法は、コンパイラの修正を待つか、それをトリガー#includeコードをいけないのどちらか

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

// code affected by bug 

#pragma warning(pop) 
3

あなたはいつもに行くことによって、特定の警告を無効にすることができます

プロジェクトの設定 - > C/C++ - >詳細設定 - >特定の警告を無効に:4341が

0

を使用することです。

[おそらく冗長な方法ではできません]

関連する問題