从 Visual Studio C++ 6.0 到 VS 2008?
Posted
技术标签:
【中文标题】从 Visual Studio C++ 6.0 到 VS 2008?【英文标题】:From Visual Studio C++ 6.0 to VS 2008? 【发布时间】:2009-04-22 05:18:20 【问题描述】:我在一家从事 VC6 上的 C++ 开发的公司工作,我们正在考虑迁移到 VS 2008。
升级有什么好处?
有什么缺点?
关于迁移项目文件的任何指南/步骤,或者我应该注意的问题?人们是否愿意迁移到不同的开发界面?
【问题讨论】:
【参考方案1】:对我来说,升级到 2008 的最大原因是 C++ 编译器的标准合规水平。它大大从 VC6 改进而来,能够使用您熟悉或想要使用的大多数库。包括 STL、BOOST 和 TR1。
缺点是升级的正常问题。例如,改进的标准合规性意味着它可能会破坏一些依赖于非标准行为的代码。没有具体的例子浮现在脑海中,但我确信它们就在那里。
【讨论】:
"for" 变量作用域和 wchar_t != short 是我能想到的两个例子。 我认为最大的变化是他们翻转了从 ARM(98 之前)到 ISO(98 之后)规则的默认切换。你仍然可以得到旧的行为(如果你真的想要它 - 不太难修复)【参考方案2】:好处是:
您将从使用了 5 年以上但模板支持较差的编译器转为更新更及时且符合标准的编译器。 您将花费更少的时间调查编译问题,这些问题最终是编译器的已知问题,而不是您的代码问题。 广泛可用的 C++ 文献和文档将与您的编译器更加相关。缺点是: - 这可能需要一些时间,否则可能会花费一些时间来为您的产品添加新功能。
移植中最大的问题可能是您拥有的任何不兼容但允许 VC6 编译的代码。此代码可能无法在 VS2008 上编译。我猜一些 Win32 API 可能也发生了变化,对于 MFC 和 ATL 类也是如此。
了解问题规模的最简单方法是处理一个不依赖于其他 VC 项目的小项目。查看您遇到了多少错误以及修复它们需要多长时间。
【讨论】:
做到 10 年以上;它是从 1997-98 年开始的。 Win32 API 是 SDK 的一部分,而不是编译器。反正他们都变了。 VC6 提供的实际 STL 来自 1996 年,最初由 HP 于 1994 年编写。 MSalters - 是的,我知道它们是 SDK 的一部分,但如果你升级 VC,那么你通常会升级 SDK。【参考方案3】:从长远来看:VC6 是在 2000 年之前发布的。它针对的是全新的操作系统,如 Windows 98 和 NT4。到目前为止,这些操作系统都已退役。
【讨论】:
【参考方案4】:有很多好处,其中包括一个非常成熟、先进和友好的环境。 除此之外,编译器已经改进,不用说 - STL ... 此外,网络上的所有论坛,所有信息都可以通过最新版本的 VS 访问,而不是旧版本。 缺点是没有向后兼容性。含义:一旦迁移,在以前的版本中就无法打开这个项目。 由于编译器之间的差异,您可能会遇到一些编译问题。 您还可能会遇到一些“包含”路径问题,因此您可能需要进行一些手动配置设置。 我强烈推荐它。加油!
【讨论】:
【参考方案5】:完全支持MFC和COM,至少是专业版。
【讨论】:
【参考方案6】:很多人都提到了搬家的好处。我建议您采取行动,但以下是我发现的两个最大的烦恼:
您需要一个项目文件来调试二进制文件。在 VC6 中,您只需将一个 exe 文件拖到 VC 窗口并进行调试即可。在此之后的每个版本中,您首先需要一个项目文件。 只需单击鼠标即可完成所有操作。很多菜单项被移到了更远的一级菜单,如果你像我一样是鼠标迷,这很烦人。【讨论】:
【参考方案7】:TDD 支持。
【讨论】:
以上是关于从 Visual Studio C++ 6.0 到 VS 2008?的主要内容,如果未能解决你的问题,请参考以下文章
Visual c++ 6.0 应用程序大小大于 Visual Studio 2010 应用程序大小
visual C++ 6.0 是先点“Compile”还是“Build”?分不分点击顺序??作用各是啥??
在 Visual Studio C++ 6.0 中使用模板函数