Despite its age, I think Microsoft Visual Studio 2005 is quite a useful tool. It works well for native C++ Windows development and I prefer its user interface to later versions. But one problem is that it doesn’t support the newer Windows 7 headers. This makes software development using Windows 7 features rather difficult.
The obvious solution is to download the latest version of the Windows software development kit (SDK) from Microsoft. The documentation for the current version of the SDK (v7.1) describes it as supporting Visual Studio 2005. But the SDK configuration tool which is necessary to configure Visual Studio 2005 doesn’t work with it, describing Visual Studio 2005 as "not a supported scenario." So how do you configure Visual Studio 2005 with Windows SDK v7.1 if the configuration tool won’t do it?
The trick is to set the configuration paths manually. Visual Studio paths can be changed in the menus under Tools, Options…, VC++ Directories.
On my system running 64-bit Windows 7, I added the following paths to the top of Executable files:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\Bin\
C:\Program Files\Microsoft SDKs\Windows\v7.1\bin
I added these paths to Include files:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\gl
C:\Program Files\Microsoft SDKs\Windows\v7.1\VC\Include
And this path to Library files:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib
And these under Exclude directories:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\gl
C:\Program Files\Microsoft SDKs\Windows\v7.1\VC\Include
I had expected that more configuration would be required, but that was all it took. I am now using the newest versions of Visual C++ and the Standard Template Library with Visual Studio 2005.
The one problem I have found is that Intellisense doesn’t work with the new headers, even if you change the Source files paths (the source of the Intellisense information). I don’t know if the Intellisense format has changed since Visual Studio 2005, or if there is a configuration problem.