Visual Studio 2013プレビューを使用していますが、以前のバージョンで見たことがあると思います。ウィザードを使用して新しいプロジェクトを作成するときは、C ++、Win32コンソールアプリケーションを選択し、プロジェクトでセキュリティ開発ライフサイクルチェックを有効にするオプションがあります。誰かがこのオプションが私のコード/プロジェクトに何をするのかを正確に説明できますか?
回答:
ここで/sdl
スイッチについて説明します。一部の警告がエラーに変わりますが、コードには影響しません。さらに、/GS
チェックをより積極的に適用します。
あまり期待しないでください。Microsoft SDLは、実際には1980年代のスタイルCプログラミングの回避策です。20世紀のC ++を使用していても、必要ありません。たとえばoperator+(std::string, std::string)
、安全でポータブルです。対照的に、ここでのMicrosoftのSDLソリューションは移植性がなく、安全でもありません。背後にある考え方/GS
は、実行時にC文字列処理のエラーを見つけてプログラムを中止し、結果を制限しますが、安全にはしないことです。
マイクロソフトセキュリティ開発ライフサイクルは、ソフトウェアメンテナンスコストを削減し、ソフトウェアセキュリティ関連のバグに関するソフトウェアの信頼性を高めるためにマイクロソフトが使用および提案するソフトウェア開発プロセスです。
これらは役立つかもしれません:
http://msdn.microsoft.com/en-us/library/windows/desktop/84aed186-1d75-4366-8e61-8d258746bopq.aspx