有没有理由不使用Visual Studio 6 for C ++?

时间:2009-03-09 12:14:58

标签: c++ vc6

我不应该使用Visual Studio 6进行C ++开发吗?

  • 我在哪里可以找到一些资源,为什么这会或不会是一个好主意?
  • 我对此有什么问题清单吗?

10 个答案:

答案 0 :(得分:22)

我不会说Visual Studio 6应该“永远不会”用于C ++开发。我会说它应该“不再”用于C ++开发。原因:

  1. Microsoft后来的编译器(特别是Visual Studio 2008)更符合C ++规范。
  2. 微软后来的编译器添加了更好的警告和错误。在查找代码的潜在安全问题时,这些功能非常有用。
  3. 不再支持。较新版本的Windows SDK不适用于Visual C ++ 6,因此如果没有额外的工作,您将无法在Windows中使用更新的功能。
  4. 总结:停止使用Visual C ++ 6.如果必须使用Microsoft C ++编译器,请使用Visual Studio 2008。

答案 1 :(得分:7)

    运行时
  1. std::string多核/ proc问题,重新:KB813810
  2. STL支持不佳
  3. 甚至更差的标准C ++支持
  4. 不要这样做。

答案 2 :(得分:6)

Visual Studio 6很好,如果你想要一个快速,轻量级的环境和一个好的调试器。问题是它附带的C ++编译器,它已经过时了。作为一个快乐的VC ++ 6用户多年后,我现在切换到Code::Blocks,它为您提供了类似的IDE,但允许您使用最新的g ++编译器。

答案 3 :(得分:2)

我认为Visual Studio失去C ++开发的主要原因是它的年龄。从那时起,编译器也得到了显着改进。

答案 4 :(得分:2)

如果您相信MS大肆宣传,Visual Studio 2010将大大增强C ++开发,并包含许多在以后的版本中丢失的Visual Studio 6功能。我个人觉得Visual Studio 6是一个非常高效的C ++开发工具,我仍然在开发过程中使用它,并在VS2008下进行最终编译和测试。我在上一个问题here

中提到了我这样做的原因

答案 5 :(得分:1)

此处有VS6当前用户。我们今年正在过渡,但我今天仍在使用它。

我非常同意我在这里看到的内容。很糟糕。

我在这里看到的一件事,但未明确说明,STL的一些更有趣的功能在VS6中几乎无法使用。尽管我可以说,这主要是因为编译器在找出隐含的模板参数时遇到了很多麻烦。例如,std :: algorithm中的所有内容都将完全无法使用,或者需要进行如此多的显式实例化,以便只需手动编写代码就会更容易和更清晰。

Boost可以帮助你解决这个问题,但是你也无法使用大量的Boost。 : - (

答案 6 :(得分:1)

当我上中学时,我在MSVC ++ 6上自学了C ++。令我惊恐的是,我发现我现在的公司仍在使用它。我给我们带来了无尽的痛苦,主要是因为模板无法编译。我们得到很好的内部编译错误。哦,mutable关键字似乎不起作用。还有很多标准合规性问题,其中一些非常严重,就像我最喜欢的那样:

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.

前段时间我在MSVC ++中发现了一个相当不错的错误和错误列表,试图说服我的老板过渡...... here's the link

答案 7 :(得分:1)

好的,vs2005及更高版本提供符合标准的c ++和更好的IDE(例如,我发现intellisense的错误更少)。

如果说标准合规性没有打扰你,你只会开发托管代码而你的项目非常面向UI,你可能更喜欢VC6(类导向在vs2008上很糟糕)。

就个人而言,就像类向导一样糟糕,我仍然会选择以后的IDE。更好的源代码控制集成,使用第三方插件的能力等的好处仍然超过了缺点。

答案 8 :(得分:0)

不使用Visual Studio 6的另一个原因是许多开源库(例如ACE框架)不再支持它。此外,如果您使用Visual Studio 6,则应该应用所有修补程序,因为某些代码在没有这些修补程序的情况下无法编译。模板支持不是很好。

作为结论:我建议使用现代/更新的C ++编译器。

答案 9 :(得分:0)

主要原因:vc ++ 6标准支持不佳。 因此,此编译器无法编译某些库。 当您决定使用其他编译器进行编译时,您的项目将具有truobles。