Scanf()のような関数を使用するときに現れるプリコンパイラの安全な警告を削除するすべてのプロジェクトに対してデフォルトで設定する方法はありますか。プロジェクトオプションに行を追加するか、コードの先頭に#define _CRT_SECURE_NO_WARNINGS
を追加することでそれを実行できることがわかりました。
私は自分自身でプログラミングコンテストを解決するための新しいプロジェクトを繰り返し作成していることに気付きました。
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
コードの冒頭で、または新しいプロジェクトを開始するたびにプリコンパイラオプションで設定します。
ソリューションエクスプローラーで目的のプロジェクトをすべてマークします。
Alt + F7キーを押すか、ソリューションエクスプローラで右クリックして[プロパティ]を選択します。
設定:すべての設定
プリプロセッサ定義行をクリックしてエディタを起動します。
編集を選択します。
上部の[プリプロセッサ定義]ボックスに「_CRT_SECURE_NO_WARNINGS」をコピーします。
私はまだVSに慣れていないし、Cにはまったく新しいからです。
#pragma warning(disable:4996)
私のファイルの先頭では、これは私がsprintfで得ていたC4996エラーを抑制しました
ちょっと面倒ですが、私の小さなコードには完璧で、最も簡単なものです。
私はそれについてここで読みます: https://msdn.Microsoft.com/ja-jp/library/2c8f766e.aspx
自動的にではなく、いいえ。プロジェクトテンプレートを BlueWandered Suggested または のように作成して、現在および将来のすべてのプロジェクトに使用できるカスタムプロパティシートを作成できます。
_CRT_SECURE_NO_WARNINGS
を追加してください。新しいプロジェクトを作成するときはいつでも、このようにこのプロパティシートを追加します。
ここでの利点は、共通の設定を管理するための単一の場所が得られるだけでなく、設定を変更するたびに、その設定がそれを使用するすべてのプロジェクトに伝達されることです。あなたが_CRT_SECURE_NO_WARNINGS
やBoostのようなあなたのプロジェクトで使用したいライブラリのような設定がたくさんある場合、これは便利です。
ここのすべての解決策は私のVS2013でうまくいきませんでした、しかし私は#define _CRT_SECURE_NO_WARNINGS
の直前にstdafx.hに#pragma once
を入れ、そしてすべての警告は抑制されました。注:私は私の研究を支援するためにプロトタイピング目的のためだけにコードを書くので、あなたのコードを書くときあなたがこの方法の意味を理解することを確認してください。
お役に立てれば
vS 2017の私の2セント:
私はそれがこれらのスタイルの両方でstdafx.hで動作することを確認できます:
a)
#pragma once
#define _CRT_SECURE_NO_WARNINGS 1
#define _WINSOCK_DEPRECATED_NO_WARNINGS 1
b)
#define _CRT_SECURE_NO_WARNINGS 1
#define _WINSOCK_DEPRECATED_NO_WARNINGS 1
#pragma once
(私はMSDNネットワークコールのための別の定義を追加しました..)もちろん私はa)を好みます。
私はそれを確認することができます:#define _CRT_SECURE_NO_WARNINGS(値なし)DOES _ _ _ WORKを行いません。
PSのポイントは、これらの定義を関数の宣言の前、つまり* .hの前に置くことです。
プロジェクトのプロパティに _CRT_SECURE_NO_WARNINGS を追加することはできますが、最も簡単な方法は、あらゆる種類の警告やエラーを無効にするためにstdafx.hを使用することです。
#pragma once
また、_CRT_SECURE_NO_WARNINGSに値が定義されている限り、値(つまり "1")を定義する必要はありません。それで、それはこのように見えるべきです:
#define _CRT_SECURE_NO_WARNINGS
#pragma once
「_ CRT_SECURE_NO_WARNINGS」にコピーしてくださいprojects-> properties-> c/c ++-> preprocessor-> preprocessor definition ok
プロジェクトでstdafx.hが使用されていない場合は、.cppファイルの最初の行に次の行を追加すれば、コンパイラの警告が表示されなくなります。少なくとも、Visual Studio C++ 2008ではこれが問題になります。
#ifdef _CRT_SECURE_NO_WARNINGS
#undef _CRT_SECURE_NO_WARNINGS
#endif
#define _CRT_SECURE_NO_WARNINGS 1
コメントと空白行をそれらの前に置いても構いません。