我正在使用Visual Studio 2013預覽版,儘管我確信我已經在早期版本中看到過它。使用嚮導創建新項目時,我選擇C++,Win32控制檯應用程序,並且可以選擇在我的項目上啓用安全開發生命週期檢查。有人可以解釋這個選項到底對我的代碼/項目有什麼作用嗎?什麼是Visual Studio中的安全開發生命週期檢查選項?
71
A
回答
67
的/sdl
開關被描述here。它將一些警告轉化爲錯誤,這不會影響您的代碼。此外,它更積極地應用/GS
檢查。
不要期望太多。 Microsoft SDL實際上是針對20世紀80年代風格C編程的一種解決方法。即使你使用20世紀的C++,你也不需要它。例如。 operator+(std::string, std::string)
既安全又便攜。相比之下,微軟的SDL解決方案不是可移植的,也不是安全的 - /GS
背後的想法是在運行時發現C字符串處理錯誤,並中止程序,限制後果但不保證安全。
2
Microsoft安全開發生命週期是Microsoft使用和提議的軟件開發過程,旨在降低軟件維護成本並提高軟件安全相關錯誤的軟件可靠性。
這些可能有所幫助:
http://msdn.microsoft.com/en-us/library/windows/desktop/84aed186-1d75-4366-8e61-8d258746bopq.aspx
+7
這是很多的材料。什麼檢查選項實際上做我的代碼? –
相關問題
- 1. 系統開發生命週期和項目生命週期有什麼區別?
- 2. 什麼是網頁開發的生命週期
- 3. 什麼是excel vba中全局變量的生命週期?
- 4. 什麼是Webservice的生命週期?
- 5. Watch App的生命週期是什麼?
- 6. 活動的生命週期是什麼?
- 7. jsp PageContext對象的生命週期是什麼?它是線程安全的嗎?
- 8. 安全元素的生命週期
- 9. 什麼是MembershipProvider生命週期?
- 10. 什麼是Azure產品生命週期
- 11. Visual Studio中的「全部分離」選項發生了什麼變化?
- 12. Apache NiFi的開發生命週期
- 13. 軟件開發生命週期資源
- 14. Android開發生命週期設置
- 15. ASP.NET生命週期開始
- 16. 什麼是Visual Studio插件/選項?
- 17. C++臨時對象的生命週期 - 是否安全?
- 18. Android項目生命週期 - 活動生命週期之前(Activity.onCreate())
- 19. 爲什麼Asynctask或Runnable的生命週期與Activity的生命週期不同?
- 20. Excel 2010中的Application.ScreenUpdating值的生命週期是什麼?
- 21. @catch塊中捕獲的對象的生命週期是什麼?
- 22. iOS 8 App Group目錄的預期生命週期是什麼?
- 23. Java中DOM節點的正確生命週期是什麼?
- 24. 什麼是休眠中的集合元素生命週期
- 25. Struts2中應用程序的ValueStack生命週期是什麼?
- 26. Asp.net中Ajax調用的頁面生命週期是什麼?
- 27. Apache Apex中的操作符生命週期是什麼?
- 28. 什麼是asp.net 3.5中的ajax生命週期?
- 29. 什麼是Java中Thread的生命週期?
- 30. WCF中AppDomain的生命週期是什麼?
字符串不是內存錯誤的唯一原因。/sdl可以幫助您識別單位變量的使用等等。 –
@JørgenFogh:您正在描述C4700警告,您不需要/ sdl。這是一級警告;您需要在C4700消失之前關閉** all **警告。如果您的開發人員正在這樣做,您就會遇到SDL無法解決的問題。 – MSalters
我記得在某處閱讀警告變得更加詳細,因爲/ sdl打開了一個更詳細的靜態分析。我不記得我在哪裏閱讀它。 –