Visual C++ now supports a secure version of the C Runtime Library. Use of this library is turned on by default. You may see some warnings about deprecated functions when you build your project. It is advised that you correct these warnings, in order to make your code more secure.
The C/C++ compiler default settings have been modified to be more compliant with ISO Standard C++. Included in those changes are enforcing Standard C++ for loop scoping and supporting wchar_t as a native type. These changes may cause existing code to no longer compile without changes to the code or the compiler options with which it is built.
IMPORTANT: The support for CLR code in the C++ language has changed considerably with this release of Visual Studio. The 'Use Managed Extensions' property, which equated to the C/C++ Compiler switch /clr in Visual Studio 2002 and 2003, has been expanded to several values in order to support new features. /clr has been converted to /clr

ldSyntax for you, but there are a variety of switch compatibility issues that you need to be aware of. (For instance, /Zl was added to projects that were created with Visual Studio 2003, but may no longer be appropriate. Because it may be appropriate to your particular project we have not removed it if it existed, but you may want to). Please see MSDN for details and additional information. (You may find the topic 'Managed Extensions for C++ Syntax Upgrade Checklist' helpful).
Project file successfully backed up as 'C:\temp\AddressBook-2.0\AddressBook\AddressBook.vcproj.7.10.old'.
Project upgraded successfully.
This project is a .NET project created with Visual Studio 2003 and the C/C++ compiler switch /Zl and the Linker switch /NOENTRY are being set in the 'Additional Options' fields for those tools. This combination of switches was typically set by the Application Wizard in Visual Studio 2003 to work around a possible dead-lock condition. As this condition will no longer arise, it is advised that you remove these switches from 'Additional Options'. (Because these are valid switches to use together in other cases, they have not been automatically removed).
Projects that support the Common Language Runtime have been converted to use dynamic linking to the run-time libraries (/MDd, /MD) because the use of the statically linked run-time libraries for managed code is no longer supported. Please note that dynamically linking the run-time libraries can cause incompatibilties with code that previously relied on static linking of the run-time libraries.
Due to the requirement that Visual C++ projects produce an embedded (by default) Windows SxS manifest, manifest files in the project are automatically excluded from building with the Manifest Tool. It is recommended that the dependency information contained in any manifest files be converted to "#pragma comment(linker,"<insert dependency here>")" in a header file that is included from your source code. If your project already embeds a manifest in the RT_MANIFEST resource section through a resource (.rc) file, the line will need to be commented out before the project will build correctly.
Due to a conformance change in the C++ compiler, code change may be required before your project will build without errors. Previous versions of the C++ compiler allowed specification of member function pointers by member function name (e.g. MemberFunctionName). The C++ standard requires a fully qualified name with the use of the address-of operator (e.g. &ClassName::MemberFunctionName). If your project contains forms or controls used in the Windows Forms Designer, you may have to change code in InitializeComponent because the designer generated code used the non-conformant syntax in delegate construction (used in event handlers).