3

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

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

10 回答 10

22

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

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

总结一下:停止使用 Visual C++ 6。如果必须使用 Microsoft C++ 编译器,请使用 Visual Studio 2008。

于 2009-03-09T12:19:33.087 回答
7
  1. std::string运行时中的多核/proc 问题,re: KB813810
  2. STL 支持不佳
  3. 更差的标准 C++ 支持

不要这样做。

于 2009-03-09T13:37:26.347 回答
6

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

于 2009-03-09T12:20:20.290 回答
2

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

于 2009-03-09T12:19:49.137 回答
2

如果您相信 MS 炒作,Visual Studio 2010将大大增强 C++ 开发,并包括在以后的版本中丢失的大部分 Visual Studio 6 功能。我个人认为 Visual Studio 6 是一个非常高效的 C++ 开发工具,以至于我仍然在我的大部分开发中使用它,并在 VS2008 下进行最终编译和测试。我这样做的原因在前面的问题中给出

于 2009-03-09T12:48:21.440 回答
2

我在中学时在 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++ 中发现了一个相当不错的错误和错误列表,试图说服我的老板离开……这里是链接

于 2009-03-09T14:41:39.047 回答
1

当前的 VS6 用户在这里。今年我们正在过渡,但我今天仍在使用它。

我非常同意我在这里看到的内容。糟透了。

我在这里看到暗示但没有明确说明的一件事是,STL 的一些更有趣的特性在 VS6 中几乎无法使用。据我所知,这主要是因为编译器在找出隐含的模板参数时遇到了很多麻烦。例如,std::algorithm 中的几乎所有内容要么完全不可用,要么需要大量显式实例化,以至于手工编写代码会更容易、更简洁。

Boost 可以对此有所帮助,但您也无法使用大量 Boost。:-(

于 2009-03-09T14:22:44.240 回答
1

好的,vs2005 及更高版本提供了符合标准的 c++ 和更好的 IDE(例如,我发现智能感知的错误少一些)。

也就是说,如果标准合规性不打扰您,您只开发托管代码并且您的项目非常面向 UI,您可能更喜欢 VC6(vs2008 上的类向导很糟糕)。

就个人而言,尽管类向导很差,但我仍然会选择后来的 IDE。更好的源代码控制集成、使用第三方插件等的好处仍然大于缺点。

于 2010-05-31T19:57:11.003 回答
0

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

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

于 2009-03-09T12:22:39.553 回答
0

主要原因:vc++ 6 对标准的支持很差。结果,该编译器无法编译某些库。当您决定使用其他编译器进行编译时,您的项目将会出现问题。

于 2009-03-09T12:24:29.237 回答