82

我正在使用 Visual Studio 2013 Preview,尽管我确信我在早期版本中看到过它。使用向导创建新项目时,我选择 C++、Win32 控制台应用程序,并且有一个选项可以在我的项目上启用安全开发生命周期检查。有人可以准确解释这个选项对我的代码/项目有什么作用吗?

4

2 回答 2

72

此处描述了该/sdl开关。它将一些警告变成错误,这不会影响您的代码。此外,它更积极地应用检查。/GS

不要期望太多。Microsoft SDL 确实是 1980 年代风格 C 编程的解决方法。即使您使用 20 世纪的 C++,也不需要它。例如operator+(std::string, std::string),既安全又便携。相比之下,Microsoft 的 SDL 解决方案不可移植,也不安全 - 其背后的想法/GS是在运行时发现 C 字符串处理的错误并中止程序,限制后果但不使其安全。

于 2013-08-19T08:09:43.163 回答
2

Microsoft 安全开发生命周期是 Microsoft 使用和提议的软件开发过程,用于降低软件维护成本并提高软件安全相关错误的软件可靠性。

这些可能会有所帮助:

http://download.microsoft.com/download/B/5/A/B5A89F4C-D591-4AAB-BF45-D818D80527B6/SDLServices2011.pdf

http://msdn.microsoft.com/en-us/library/windows/desktop/84aed186-1d75-4366-8e61-8d258746bopq.aspx

于 2013-08-18T23:34:51.470 回答