What are the benefits if I compile my MFC/Win32 application with VS2005 instead of VS6?
The downsides I see are:
- VS6 SP6 is around for a while, if any problems exist they are well known, and the applications have been tested over several years. VS2005 may introduce new problems so actually the whole application needs to be retested again.
- The MFC42 and C Runtime is preinstalled on every PC, so we can use the DLLs without having to deploy them, which results in smaller executable/installer size.
I know that VS2005 introduces many new things, but that is not the question here. Same code base, compiled with VS6 and VS2005, why do I want to ship the VS2005 executable?
There is definitely a lot to be said for the sentiment "If it ain't broken don't fix it". If your application is working and Visual C++ 6.0 works for you then why change it. There is a story (probably an Urban Legend) of a development team in IBM that only used obsolete compilers - that way they knew that the compiler would never change.
Having said that Visual C++ 6.0 is a very old compiler (it was released in 1998) and it is no longer supported bt Microsoft - so if you do run in to a problem you won't be able to get any help from us.
Also a huge number of improvements have happened since 1998 - the C++ compiler itself is light years better (especially for templates), MFC has had heaps of bug fixes (a lot of which won't have made it into any Visual C++ 6.0 SP), there is all the security work - both in generated code and in the libraries, there is support for 64-bit platforms, and up coming is support for Vista.
Upgrading a toolset can be a pain - especially when there is such a huge differences between toolsets as there is between Visual C++ 6.0 and Visual C++ 2005 - but on the whole your application should come out of the process in much better shape.