Я использую Visual Studio 2013 Preview, хотя я уверен, что видел его в более ранних версиях. При создании нового проекта с помощью мастера я выбираю C ++, консольное приложение Win32, и в моем проекте есть возможность включить проверки жизненного цикла разработки безопасности. Может ли кто-нибудь объяснить, что именно эта опция делает с моим кодом / проектом?
/sdl
переключатель описан Вот. Превращает некоторые предупреждения в ошибки, которые не влияют на ваш код. Кроме того, он применяет /GS
проверь более агрессивно.
Не ожидай от этого слишком многого. Microsoft SDL — это действительно обходной путь для программирования в стиле C. Даже если вы используете C ++ 20-го века, вам это не нужно. Например. operator+(std::string, std::string)
является одновременно безопасным и портативным. Решение SDL от Microsoft, напротив, не переносимо и не безопасно — идея /GS
это найти ошибки с обработкой строки C во время выполнения и прервать программу, ограничивая последствия, но не делая ее безопасной.
Microsoft Security Development Lifecycle — это процесс разработки программного обеспечения, используемый и предлагаемый Microsoft для снижения затрат на обслуживание программного обеспечения и повышения надежности программного обеспечения в отношении ошибок, связанных с безопасностью программного обеспечения.
Это может быть полезно:
http://msdn.microsoft.com/en-us/library/windows/desktop/84aed186-1d75-4366-8e61-8d258746bopq.aspx