What are some convincing arguments to upgrade from

2019-01-23 16:07发布

I have a client who is still using Visual Studio 6 for building production systems. They write multi-threaded systems that use STL and run on mutli-processor machines.

Occasionally when they change the spec of or increase the load on one of their server machines they get 'weird' difficult to reproduce errors...

I know that there are several issues with Visual Studio 6 development and I'd like to convince them to move to Visual Stuio 2005 or 2008 (they have Visual Studio 2005 and use it for some projects).

The purpose of this question is to put together a list of known issues or reasons to upgrade along with links to where these issues are discussed or reported. It would also be useful to have real life 'horror stories' of how these issues have bitten you.

14条回答
Ridiculous、
2楼-- · 2019-01-23 16:46

The biggest problem that we've seen at my workplace is it's inability to handle even marginally complex templated classes or functions. This fact alone has force some of the most devoted VS6 fans in the company to upgrade and start using VS2005. In addition to the template problem, intellisense is much better, debugging is easier and more accurate, and many people find the IDE easier to navigate. The only downside that we have seen thus far is that builds take a bit longer in 2005 than they did in 6 (but that's probably a side effect of the compiler being more robust)

You can also check out these sites for a sampling of known issues in VS6:

I'm sure you could find more if you poked around a bit.

查看更多
放我归山
3楼-- · 2019-01-23 16:46

By defoult newer versions have better compiler and better libraries. But it's not always easy to port existing projects to newer studio, and you can upgrade both compiler and libraries manually.

I was using VS 6.0 with Intel compiler just year ago. We just had a bunch of old code then, which was threating iterators as pointers and vice versa, and it was all real messy and scary, so this holded us from an upgrade.

But I have had to upgrade after all, because the framework I'm currently using simply doesn't run on VS 6.0. Think this is the ultimative reason :-)

查看更多
唯我独甜
4楼-- · 2019-01-23 16:46

Third-part libraries support only a limited number of compilers, too. Your client may not be able to accept bugfixes or feature upgrades as a result.

For instance, even a widely used library as Boost supports only VS 7.1 and later (source)

And you might have some problems with Data Execution Prevention (DEP) as well, because VC6 ships with an old ATL version. As usual, see Raymond Chen for details.

查看更多
Emotional °昔
5楼-- · 2019-01-23 16:47

The VS 2008 version of the STL compiles with /clr, so if they're interested in transitioning to the managed world, they don't have to lose all their old code.

查看更多
Viruses.
6楼-- · 2019-01-23 16:48

operator new doesn't conform to the C++ spec and doesn't throw exceptions on allocation failure, fixing this is non trivial.

see: http://msdn.microsoft.com/en-us/magazine/cc164087.aspx

查看更多
Anthone
7楼-- · 2019-01-23 16:48

Though I no longer have concrete details, I'll just throw in that when we upgraded at work, the new compiler found quite a few errors that VC 6 let slip through quietly. Improved product robustness just from the upgrade.

查看更多
登录 后发表回答