1. ホーム
  2. c++

[解決済み] Visual Studio の Security Development Lifecycle Checks オプションとは何ですか?

2023-07-04 06:08:18

質問

Visual Studio 2013 Preview を使用していますが、以前のバージョンで見たことがあるような気がします。ウィザードを使用して新しいプロジェクトを作成する際、C++、Win32 コンソール アプリケーションを選択すると、私のプロジェクトでセキュリティ開発ライフサイクル チェックを有効にするオプションがあります。このオプションが私のコードやプロジェクトに何をもたらすのか、どなたか正確に説明していただけませんか?

どのように解決するのですか。

この /sdl スイッチの説明 ここで . これはいくつかの警告をエラーに変えるもので、あなたのコードに影響を与えることはありません。さらに、これは /GS のチェックをより積極的に適用します。

過度な期待は禁物です。Microsoft SDL は、実際には 1980 年代のスタイルの C プログラミングのための回避策です。20世紀のC++を使用している場合でも、それは必要ありません。例えば operator+(std::string, std::string) は安全であり、かつ移植可能です。対照的に Microsoft の SDL ソリューションは移植性がなく、安全でもありません。 /GS の背後にある考えは、実行時に C の文字列処理でエラーを発見してプログラムを中断させることです。