6

C++ .Net アプリケーションをコンパイルすると、次のタイプの警告が 104 回表示されます。

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

XX がある場所

  • WCHAR
  • 長いです
  • 少し
  • バイナリ
  • GUID
  • ...

私が何をしても、これらの警告を削除できないようです。それらをダブルクリックすると、OdbcParameters を使用するコードの一部に移動します。残りのすべてのものを使用してテスト プロジェクトを試行しても、OdbcParameters は警告を表示しません。

これらの警告を取り除く方法はありますか? 彼らは、私が実際には見づらく書いたコードから本当の警告を発しています - そして、私のアプリに 104 個の警告があることを知っているだけで恐ろしい気分になります!

4

3 に答える 3

4

これはコンパイラのバグです。これが既知の問題であることを確認する別の投稿です。私のプロジェクトの1つで同じ問題が発生し、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 に答える