2008-09-15 46 views
9

MS VS C++ 6.0和MSVS C++ 2008之间有什么优点/缺点?Visual C++ 6.0和Visual C++ 2008有什么区别?

问这样一个问题的主要原因是,仍然有许多像样的程序员更喜欢使用旧版本而不是最新版本。

是否有任何理由可能会选择比旧的更新?

回答

4

嗯,一方面可能是因为使用MSVS 6构建的可执行文件只需要现在随Windows提供的msvcrt.dll(C运行时)。

MSVS 2008可执行文件需要msvcrt9随附(或已安装)。

另外,你已经有很多OSS库已经为Windows 32位编译了6.0 C运行库,而对于2008 C运行库,你必须自己编译源代码并编译它们。

(其中大多数库实际上是用MinGW编译的,它们也使用6.0 C运行时 - 也许这是另一个原因)。

+2

您可以静态链接VCRT并没有任何相关性。 – 2009-03-09 12:28:24

0

Visual C++ 2008更符合标准(Visual Studio 6不支持1998年设置的C++标准)。

0

VS2008有更好的编译器(符合更多的标准,更好的优化,...)。

VS6有更快的IDE。 VS2008 IDE有很多不错的功能,但比VS6低了很多。

0

的改进,你会继续看到从6.0到2008年快速列表:

  • 许多bug修复
  • 更好地符合C++标准
  • 更好的编译器优化
  • 改进的UI(更好的智能感知等等)

有时候人们会忘记的一件事是VS 6.0已经超过10岁了!在这一点上,我不明白有谁会想要坚持下去。

+0

VC++ 6的代码在VC++ 2005中编译并不是很确定。为了让我的代码正常工作,我花了一个下午的时间进行调整。如果代码基数很大,那么制作开关可能会非常困难。有时候,你认识的魔鬼更好! – 2009-03-09 20:51:22

27

Visual Studio 2008与Visual C++的优点6。0:

  • 更符合标准的C++编译器,具有更好的模板处理
  • 支持X64 /移动/ XBOX目标
  • 改进STL实现
  • 支持的C++ 0x TR1(智能指针,正则表达式等)
  • 安全C运行时库
  • 改进代码导航
  • 改进的调试器;可能运行远程调试会话
  • 更好的编译器优化
  • 许多bug修复
  • 更快的构建多核/多CPU系统
  • 改进IDE的用户界面,有许多不错的功能
  • 改进宏支持在IDE中; DTE可以访问更多的IDE方法和变量
  • 更新MFC库(在VS2008的Service Pack 1)对于OpenMP(易多线程)
  • 支持(只在VS2008亲。)

缺点转移到视觉的Studio 2008中:

  • 的IDE比VS6慢了许多
  • 智能感知仍然有性能问题(与VisualAssistX取代它可以帮助)
  • 并排端组件使应用程序的部署更成问题
  • 本地(脱机)MSDN库是极其缓慢
  • 如前所述here,有一个在专业版

在任何分析器Joel最近的blog post的精神,我把其他一些答案结合在一个单一的答案中(并且这是一个社区所有的帖子,所以我不会从中获得代表)。我希望你不介意。非常感谢Laur,NeARAZ,26岁的26岁,me.yahoo.com和其他所有回答。 - ChrisN

+1

VS6 ClassWizard与自定义类型和验证一起使用时,生成对话框的速度远远超过以后的VS实现。我仍然将它用作代码生成器,并返回VS2005进行发布。 – 2008-10-14 06:44:47

2

除了上面提到的部署,MSVC 6.0的主要优点是速度。因为它是一个10年的IDE,它在现代计算机上感觉非常快。较新版本的Visual Studio提供了更高级的功能,但它们的代价是(复杂性和速度较慢)。

但是,MSVC 6.0最大的缺点是其不兼容的C++编译器和库。如果你打算做严重的C++ - 编程这是一个表演停止。如果你只生成MFC应用程序,它可能不是什么大问题。

0

我们遇到的一件难事就是“价值”成了关键词。

1

Visual C++ 6.0与内存跟踪工具(例如Purify,HeapAgent,BoundsChecker和MemCheck)完全整合,因为这些内存跟踪工具在Visual C++ 6.0推出后积极维护并大量销售。但是,由于C++已经流行了一段时间,销售内存跟踪工具的公司仍然销售它们,但从不更新它们或将它们与新的Visual C++版本(包括Visual Studio 2008)集成。因此,使用内存跟踪工具与Visual Studio 2008令人沮丧,errorprone,在某些情况下,是不可能的。

4

我想补充一点,使用Visual C++ 2008开发的应用程序必须比使用Visual C++ 6.0开发的应用程序需要更多的DLL。这只是默认的项目配置。

如果你进入你的项目属性,C/C++,代码生成,然后从多线程DLL和多线程调试DLL(发布和调试配置)更改运行时库多线程多线程调试,您的应用程序应该拥有更少的依赖关系。

+0

+1,我认为这可能是有用的信息.. – krebstar 2009-01-21 06:16:39

3

了我的头顶部,新的Visual Studio的优点是:

  • 更严格地遵守标准的x64 /移动/ XBOX
  • 支持 目标
  • 更好的编译器优化
  • (way)更好的模板处理
  • 改进的调试器;可能性为 运行远程调试会话
  • 改进的IDE
  • 改进的宏支持; DTE可以访问更多的IDE方法和变量

缺点:

  • IDE似乎慢
  • 智能感知仍然有性能 问题(与 取代它VisualAssistX可以帮助)
  • 运行时并不普遍可用
  • 源代码管理集成不高达 par(尽管公平性VC6 完全没有这个功能)
1

因为VC6大部分的Visual Studio重点已经在C#和.NET,以及其他功能,所以一些C++老前辈看到VC6作为好日子。自那时起,Visual Studio for C++开发人员的工作得到了改进,但并没有.NET用户那么大。

VS2008显着优于VC6的一种方式是它可以并行构建C++项目。即使在单个CPU系统上,这也可以显着加快构建速度,但是如果您有多个内核,则尤其如此。

0

与2008年相比,Visual C++ 6的时间可能非常有限。特别是有些事情:

  • 可怜的模板支撑/诡异(例如sometemplate<othertemplate<t>>没有工作,但sometemplate< othertemplate<t>>工作)
  • 不符合标准
  • 资源编辑器是垃圾(“蓝线”似乎走动随机等)
  • 仅支持编辑某些种类的8位位图(我必须使用imagemagick转换保存在paint.net中的位图,才能在图片资源中看到)
  • 对工作的支持很差只读fi les/quirky sourcesafe整合。

在VS6发展有时感觉就像试图让网站寻找在Internet Explorer 5.5好

1

如果您安装VS6所有服务​​包你仍然有一个坚实的IDE /编译器组合。作为一个软件开发人员,他们必须在互联网上狂放地发布产品,我不想每次都发布VC++运行时和.NET框架(我不能直接将它们捆绑到我的安装程序/可执行文件中,它被Microsoft禁止)。你知道,运行几千兆字节来运行千字节的代码有点愚蠢。 VC++ 6.0最好只需要你的可执行文件和2个.DLL文件。

此外,调试运行时不能用VC++ .NET分布,不是真的很好,当我有一个客户端,它需要做我的产品:)

有一个在我看来的一些调试的重要原因,为什么我仍然使用VC++ 6.0,但IDE本身很丑陋(即:没有Tab键支持)。我通常使用的代码块,而不是绕过IDE限制(代码块支持CL.EXE/LINK.EXE所有VC++版本)

Cobolfoo

相关问题