のVisual Studioを抑制しないであろう2015コミュニティ版は、デバッグでコンパイルするときに次のエラーを与えるが、リリースでコンパイルしていないとき:のVisual Studio 2015は、エラーC4996
std::copy::_Unchecked_iterators::_Deprecate': Call to 'std::copy' with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
私は戻って追跡することができましたこのエラーの原因は、this third party libraryの214と242行です。ビットマップイメージを書き込むために使用しています。私はこれらの部分で何が起こっているのか完全に理解していないので、むしろそれを混乱させたくない。
私はこのエラーを無効にしようとしていますが、Visual Studioは私を許可しません。私は他の場所で、in the documentationを提案StackOverflowの上、またはされた以下のソリューションを試してみた:
- は、プロジェクト設定で「特定の警告を無効にする」フィールドに
4996
を追加]> [構成プロパティ]> [C/C++]> [詳細設定。 - [プロジェクトの設定]> [設定のプロパティ]> [デバッグ]の[コマンド引数]フィールドに
/wd4996
を追加します。 #pragma warning (disable : 4996)
を問題のファイルの先頭に追加するか、問題のある機能の上に追加します。- プロジェクト設定>構成プロパティ> C/C++>プリプロセッサの「プリプロセッサ定義」フィールドに
_SCL_SECURE_NO_WARNINGS
、_SCL_NONSTDC_NO_WARNINGS
、_SCL_OBSOLETE_NO_WARNINGS
、_SCL_SECURE_NO_WARNINGS_GLOBAL
、およびそれらの組み合わせを追加します。 - 違反ファイルの先頭に
#define
ディレクティブを付けて、前のソリューションの定義を追加します。 - 前のソリューションの定義を追加しますが、接頭辞は
/D
または-D
で、「コマンド引数」フィールドに追加します。
しかし、これは私の問題を解決するものではありません。
Visual Studioがこのエラーの表示を主張する理由は何でしょうか?
待ち、 '#define -D_SCL_SECURE_NO_WARNINGS'を試しましたか? – Rakete1111
'#pragma warning'の後の空白に問題がある可能性はありますか?あなたはプロジェクトをきれいにしましたか?/ – meepzh
@ Rakete1111もし私がそれを試してみると、それは " - "に "識別子を期待した"と私に伝えます。 '-'がなければ、それでもエラーは出ます。 – FWDekker