The project conversion wizard successfully converted the projects (with a few warnings). The warnings were mainly about non-standard output locations (e.g., setting the targetpath to a common directory instead of using the default targetpath).
Caveats observed so far:
- The C++ compiler apparently doesn’t like one of our multiline macros. Since this is an old macro that’s no longer necessary and I generally find macros troublesome commenting it out addressed this issue.
- The C++ compiler no longer supports targeting Windows versions earlier than Win 2000. A few old source files explicitly defined _WIN32_WINNT at 0x400 (Win95/NT4!). It’s probably a good thing that these had to be updated since we don’t target those platforms anymore.
- SHGetSetFolderCustomSettings(), typically used for desktop.ini chicanery, is no longer supported. It’s possible that this is showing up because we’ve corrected the _WIN32_WINNT preprocessor definition but since it was being used in a way that we no longer need (or want) this afforded an opportunity to do away with it.
- The version of the Windows SDK that ships with Visual Studio 2010 doesn’t play nice with the DirectX August 2008 SDK. So this had to be upgraded (to the February 2010 DirectX SDK).
- The DirectX SDK no longer includes dxerr9.h/.lib and the utility macros DXGetErrorMessage9() and DXGetErrorDescription9() drop 9 from their names.
- The build system now detects when a project references a library that targets a more recent version of the framework. Updating the target framework for the project fixes this.
As was the case with the migration from 200* to 2008 most of the difficulties arise in native/unmanaged code.