

For example, an ATL project has properties related to MIDL files, but these properties are absent in a basic console application. The defaults vary somewhat depending on the kind of project and what options you choose in the app wizard. When you create a project, the system assigns values for various properties. To access the property pages, choose Project > project-name Properties from the main menu, or right-click on the project node in Solution Explorer and choose Properties. Typically, you use property pages to view and modify these properties. This information includes the application name, extension (such as DLL, LIB, EXE), compiler options, linker options, debugger settings, custom build steps, and many other things. Licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.In the IDE, all information that's needed to build a project is exposed as properties. You may copy and use this document for your internal, reference purposes. This documentation does not provide you with any legal rights to any intellectual property in any Microsoft product. This documentation is provided “as-is.” Information and views expressed in this document, including URL and other Internet website references, may change without notice. As a result, this example should not be considered as the exact process that Microsoft follows to secure all products. Additional assurance work may be performed by product teams (but not necessarily documented) at their discretion. This documentation is not an exhaustive reference on the SDL process as practiced at Microsoft.
#Microsoft visual studio 2008 c compiler code
Windows CE Requirements: Compact Framework Managed Code Visual Studio 2008 Code Analysis Options (“/analyze.) Use of /NXCOMPAT:NO does not apply to WinCE. Use of /SAFESEH only applies to x86 on WinCE platforms. Use of /NXCOMPAT does not apply to WinCE. Use of /SAFESEH only applies to x86 with WinCE platforms.

Minimally, –GS must be used on all Internet-facing code. The –GS flag has a modest impact on code size, which can be of interest on WinCE platforms. See Appendix F: SDL Requirement: No Executable Pages for more information. Use /NXCOMPAT and do not use /NXCOMPAT:NO. Use of /SAFESEH does not apply to Win64 platforms. Note: AppVerifier is targeted at unmanaged code and is not optimized for managed code.

Run tests as described in Appendix J: SDL Requirement: Application Verifier If using C#, use C# v2.0 or later if using Visual Basic.NET use Visual Basic.NET 8.0 or later See Appendix I: SDL Requirement: Heap Manager Fail Fast Setting for more information.Ĭompile code with C4700 and C4701 compiler warnings enabled and fix all instances of these warnings.

Visual Studio 2008 Team Edition contains a publicly available version that is branded as “C/C++ Code Analysis”.Īll executable programs written using unmanaged code (.EXE) must call the HeapSetInformation interface. See Appendix H: SDL Standard Annotation Language (SAL) Recommendations for Native Win32 Code for more information. Standard Annotation Language (SAL): Code annotated with SAL should correct additional warnings in addition to those listed above. Visual Studio 2008 Code Analysis Options (“/analyze”). Visual Studio 2008 SP1 is needed for /DYNAMICBASE Use /NXCOMPAT and don’t use /NXCOMPAT:NO. Optimal/ Recommended Version and Switches/Options Minimum Required Version and Switches/Options Windows CE Requirements: Compact Framework Managed Code Win32 Requirements: Unmanaged Code Win64 Requirements (IA64 and AMD64): Testing Tools Win64 Requirements (IA64 and AMD64): Managed Code Win64 Requirements (IA64 and AMD64): Unmanaged Code
