我正在使用 Visual Studio 2013 Preview,尽管我确信我在早期版本中看到过它。使用向导创建新项目时,我选择 C++、Win32 控制台应用程序,并且有一个选项可以在我的项目上启用安全开发生命周期检查。有人可以准确解释这个选项对我的代码/项目有什么作用吗?
问问题
29235 次
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://msdn.microsoft.com/en-us/library/windows/desktop/84aed186-1d75-4366-8e61-8d258746bopq.aspx
于 2013-08-18T23:34:51.470 回答