Question

Are there any reasons why I shouldn't use Visual Studio 6 for C++ development?

  • Where can I find some resources why this would or wouldn't be a good idea?
  • Are there any lists of issues I would have with this?
Was it helpful?

Solution

  1. std::string multicore/proc issues in the runtime, re: KB813810
  2. poor STL support
  3. even poorer Standard C++ support

Don't do it.

OTHER TIPS

I wouldn't say that Visual Studio 6 should "never" be used for C++ development. I would say that it should "no longer" be used for C++ development. Reasons:

  1. Microsoft's later compilers (particularly Visual Studio 2008) are much more compliant with the C++ specification.
  2. Microsoft's later compilers add better warnings and errors. These are useful when looking for potential security problems with your code.
  3. It's no longer supported. Newer releases of the Windows SDK don't work with Visual C++ 6, so you won't be able to use newer features in Windows without extra work.

To summarise: stop using Visual C++ 6. If you have to use a Microsoft C++ compiler, use Visual Studio 2008.

Visual Studio 6 is fine, if you want a fast, lightweight environment with a good debugger. The problem is the C++ compiler that comes with it, which is very outdated. After many years as a happy VC++ 6 user, I've now switched to Code::Blocks, which gives you a similar IDE but allows you to use the up-to-date g++ compiler.

I think the main reason for Visual Studio falling out of favor for C++ development is because of it's age. The compiler has also been improved significantly since then.

If you believe the MS hype, Visual Studio 2010 will be greatly enhanced for C++ development, and include much of the Visual Studio 6 functionality that was lost in later releases. I personally find Visual Studio 6 to be a very productive C++ development tool, to the extent that I still use it for much of my development, and do final compiles and testing under VS2008. My reasons for doing this are given in a previous question here

Current VS6 user here. We are transitioning away this year, but I'm still using it today.

I pretty much agree with what I'm seeing said here. It sucks.

One thing I've seen hinted at here, but hasn't been said explicitly, is that some of the more interesting features of the STL are all but unusable in VS6. As near as I could tell, this is mostly because the compiler has a lot of trouble figuring out implied template parameters. For example, pretty much everything in std::algorithm is going to either be totally unusable, or require so much explicit instantiation that it would be easier and cleaner-looking to just write the code by hand.

Boost can help a bit with this, but a great deal of Boost will be unavailable to you too. :-(

I taught myself C++ on MSVC++ 6 when I was in middle school. To my horror, I discovered my current company still using it. I causes us endless pain, mostly regarding templates failing to compile. We get great internal compiler errors. Oh, and the mutable keyword doesn't seem to work. There's also tons of standards compliance issues, some of them quite serious, like my favorite:

for (int i = 0; i < 10; ++i)
{
     // do some stuff here
}

cout << i; // THIS COMPILES AND WORKS!  i is in the function scope, not the loop scope.

I found a fairly nice list of bugs and misfeatures in MSVC++ some time ago in an attempt to convince my boss to transition away... here's the link.

Ok, vs2005 and upwards provides standards compliant c++ and a better IDE (I find the intellisense a little less buggy for example).

That said if standards compliance doesn’t bother you, you only develop managed code and your projects are very UI orientated you may prefer VC6 (class wizard is awful on vs2008).

Personally, as poor as class wizard is, I would still go for the later IDE. The benefit of better source control integration, the ability to use third party plugins, etc still outweighs the cons.

Another reason not to use Visual Studio 6 is that it is no longer supported by many open source libraries (ACE framework for example). Also if you use Visual Studio 6 you should apply all the patches because some code it is not compilable without those patches. The template support is not very good.

As a conclusion: I would recommend using modern/newer C++ compilers.

Main reason: vc++ 6 have poor standard support. As result some of libraries couldn't be compiled by this compiler. And your project will have truobles when you will decide to compile with other compiler.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top