I have found Microsoft's Visual Studio .Net to be the most productive C++ development environment on Windows. Although an integrated development and debugging environment (IDE) is foreign to Unix users who have grown accustomed to separate command-line development tools ( e.g. emacs, make, gcc, gdb,... ), the benefits are immediately obvious to anyone who has made the transition to a modern development environment.
Microsoft provides an enormous amount of documentation on the web at http://msdn.microsoft.com/library/en-us/vcedit/html/vcorivisualcmainnode.asp. Since the amount of information can be daunting and beginning users can easily become lost in the web of hyperlinks, I have put together a short tutorial on how to get started building a simple console application. The primer can be found here.
Although the Visual Studio IDE is not freely available, the C++ compiler (as well as C#, Visual Basic, and JScript) is available as a free download.
Microsoft .NET Framework Version 1.1 Redistributable
The Microsoft .NET Framework 1.1 includes everything you need to run
applications built using the .NET Framework, including the common language
runtime and class libraries.
Microsoft .NET Framework 1.1 Software Development Kit
The Microsoft .NET Framework 1.1 Software Development Kit (SDK) includes
everything you need to write, build, test, and deploy applications built using
the .NET Framework - documentation, samples, and command-line tools and
compilers.
You will also need to download the Microsoft Platform SDK which contains the Windows headers and libraries for the compilers.
The cygwin project provides a Unix-like environment on Windows platforms. It includes the Gnu Compiler Collection, gcc, editors such as vi & emacs, as well as debuggers (gdb, insight). The default settings produce output which is subject to GPL licensing, requiring you to distribute source code. One can, however, optionally target the Windows runtime libraries. Installation instructions for first-time installers can be found here.
You should now have the tools to develop C++ applications on Windows.
If you have any comments or suggestions, especially contributions to improve this set of instructions, please contact me.