1

我要求我的团队将我们的 vc6 应用程序移植到 vc2005,他们准备分配一些时间来做同样的事情。现在他们需要知道移植的优势是什么。

我不认为他们真正理解遵守标准意味着什么。

帮我列出做移植的优势。

我面临的问题是

1)标准容器不支持调试

2)不能使用boost库

3)我们使用了大量的查询生成,但使用了类型不安全的 CString 格式函数

4)很多时间都花在解决 vc6 问题上,比如有 >>

vector<vector<int>>

>>之间没有空格

4

7 回答 7

8

好处:

  • 更多符合标准的编译器。这是一件好事,因为它将更容易移植到另一个平台(如果你想这样做的话)。这也意味着您可以在标准中而不是在微软的文档中查找内容。最后,您将不得不在该功能的某个时刻升级您的编译器。越早做,工作量就越少。

  • MS 不支持。新的 SDK 不起作用。64位不工作。而且我不认为他们还在修复错误。

  • 更好的IDE。就个人而言,我真的更喜欢标签而不是 MDI。我还认为配置 Visual Studio(创建自定义快捷方式、菜单栏等)要容易得多。当然这是主观的。查看特快版,看看您是否同意。

  • 更好的插件支持。有些插件不适用于 VC6。

缺点:

  • 到港所需的时间。这在很大程度上取决于您拥有什么样的代码。如果您的代码大量使用不符合标准的 VC6 功能,则可能需要一些时间。正如安德鲁所说,如果您要维护一个旧的遗留项目,那可能不值得。

  • 性能更差。如果您在非常旧的计算机上进行开发,Visual Studio 可能会太慢。

  • 成本我只是快速浏览了一下,Visual Studio 许可证似乎比 VC6 的许可证贵一点。

于 2009-03-10T08:45:11.703 回答
5

为什么选择VC2005?如果您打算花时间(和测试!)从 VC6 升级,为什么不瞄准 VC2008?

于 2009-03-10T06:34:25.340 回答
3

如果您正在维护一个遗留项目,那么移植可能没有优势。简单地转换项目和修复编译器问题可能需要数周的时间并引入不稳定。

如果您正在积极开发产品,那么主要优势是您将不再使用超过八年的产品 - 这显然是一件好事。

于 2009-03-10T05:46:29.403 回答
2
  • 较新版本的 Windows SDK 不适用于 VC6 - 如果您想使用最新的 Windows 功能,则需要更新的编译器。
  • 据说后来的编译器更符合标准。对不起,我不能更具体。我确实知道 VC6 生成大量编译器警告只是为了使用标准模板类。
  • 如果您使用任何使用后来的编译器编译的外部库,则需要使用兼容的东西。

为艰难的过渡做好准备 - IDE 与它们应有的不同。

于 2009-03-10T05:56:36.320 回答
1

确保应用程序与不同版本的基础平台完全兼容。并纠正由此发现的任何错误,以便为最终用户提供足够的自由来使用他自己的基础平台版本。

于 2009-03-10T05:35:44.077 回答
1

我并不是说您不应该转换,而是要说明您的具体观点:

1)标准容器不支持调试

我一直使用带有 VC++ 6 的标准容器来调试代码。你这里有什么问题?

2)不能使用boost库

真的。你可能会发现你可以使用一些更简单的东西。

3)很多时间都花在解决 vc6 问题上,比如有 >>

[不能让 SO 停止破坏这个,nb]

>>之间没有空格

嗯,这是一个语法错误(至少在 VC++6 理解的 C++ 版本中)并且会被标记为这样。如果您的团队在这类事情上花费“大量时间”,那么您需要另一个团队。

编辑:

3)我们使用了大量的查询生成,但使用了类型不安全的 CString 格式函数

在 VS2005 下它同样是类型不安全的。我不明白为什么这是移植的原因。如果您想要类型安全,请使用标准 C++ I/O 机制。

于 2009-03-10T09:25:14.197 回答
0

如果您的团队看不到任何优势并且您无法解释任何优势,您为什么要求他们这样做?

听起来你只是为了它而移植。

于 2009-03-10T05:51:32.073 回答