無効に警告を発生_CRT_SECURE_NO_DEPRECATE
-
02-07-2019 - |
質問
何が最良の方法を無効にするには警告を発生 _CRT_SECURE_NO_DEPRECATE
可能にした特別なご手配が必要との事業全体Visual Studioのバージョン?
解決
したいという場合などに汚染されるソースコード(すべてこの警告のみマイクロソフトコンパイラ)を追加 _CRT_SECURE_NO_WARNINGS
シンボルプロジェクトの設定"プロジェクト"->"性"->"コンフィグレーションプロパティ"->"C/C++"->"プリプロセッサ"->"プリプロセッサの定義".
ものを定義しておくことができます前にさらにヘッダファイルを生成するこの警告が表示されます。を追加してくださいこのようになっ
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
とも述べたように、いかにこの警告は、それない場合は使用しないでその他のコンパイラによMSVC使用を考慮するより安全版の機能があるstrcpy_sの代わりにstrcpy.
他のヒント
きを無効に警告を一時的にができるわけではなく、出
#pragma warning(push)
#pragma warning(disable: warning-code) //4996 for _CRT_SECURE_NO_WARNINGS equivalent
// deprecated code here
#pragma warning(pop)
だけを無効にすべての警告は、有害です。
働いているマルチプラットフォームで利用できない_sの機能とたくない汚染され自分のコード音を最大の特定のコードです。
私の溶液を無効に警告4996、visual studioのプロジェクト.行プロジェクト->プロパティ->コンフィグレーションプロパティ->C/C++>先端->無効に特定の警告を追加価値4996.
ご利用の場合も、mfcはatl図書館(私の場合)定義の前にあmfc_AFX_SECURE_NO_DEPRECATE前まatl_ATL_SECURE_NO_DEPRECATE.
この溶液を挟visual studio2003年と2005年.
p.s.ご利用の場合のみvisual studioのセキュアテンプレートの過度の負荷がよい解決策です。
にお使いいただけます 確保のテンプレートの過度の負荷, いまのunsecure電話の確保などが可能で容易に推測のバッファサイズ(static配列).
で以下の変数を追加します:
#define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES 1
その後の残りの警告により、よ_sます。
組み合わせる@[macbirdie】@[Adrian Borchardt]の答えです。すると組み合わせることは非常に有用な生産環境のない相談までの既存の警告は、クロスプラットフォームをコンパイル)
#if (_MSC_VER >= 1400) // Check MSC version
#pragma warning(push)
#pragma warning(disable: 4996) // Disable deprecation
#endif
//... // ...
strcat(base, cat); // Sample depreciated code
//... // ...
#if (_MSC_VER >= 1400) // Check MSC version
#pragma warning(pop) // Renable previous depreciations
#endif
の警告による警報の場合、その賢明な回復にデフォルト時点から確認することができますよ。
#pragma warning(disable: 4996) /* Disable deprecation */
// Code that causes it goes here
#pragma warning(default: 4996) /* Restore default */
最良の方法は簡単なチェックや評価が難しい。いて思ったこと。
#ifndef _DEPRECATION_DISABLE /* One time only */
#define _DEPRECATION_DISABLE /* Disable deprecation true */
#if (_MSC_VER >= 1400) /* Check version */
#pragma warning(disable: 4996) /* Disable deprecation */
#endif /* #if defined(NMEA_WIN) && (_MSC_VER >= 1400) */
#endif /* #ifndef _DEPRECATION_DISABLE */
すべてのような必要は次の通りです:
#pragma warning(disable: 4996)
なに失敗したって;武器agiは、dexで下がらないboxerぐ
無数の組み合わせで自分だけのセキュリティチェック.へ
プロジェクト->プロパティ->コンフィグレーションプロパティ->C/C++>のコード生成->セキュリティチェック
選択を無効にセキュリティチェック/GS-)
を定義することができ_CRT_SECURE_NO_WARNINGSシンボルを抑制すると削除で復しています。
他のレ答...こちらはどのようにMicrosoftが使用できるように心がけてい wchar.h
.通知そのものを無効に 警告C6386:
__inline _CRT_INSECURE_DEPRECATE_MEMORY(wmemcpy_s) wchar_t * __CRTDECL
wmemcpy(_Out_opt_cap_(_N) wchar_t *_S1, _In_opt_count_(_N) const wchar_t *_S2, _In_ size_t _N)
{
#pragma warning( push )
#pragma warning( disable : 4996 6386 )
return (wchar_t *)memcpy(_S1, _S2, _N*sizeof(wchar_t));
#pragma warning( pop )
}