【发布时间】:2008-11-18 06:47:41
【问题描述】:
你预见到的所有问题是什么。
【问题讨论】:
标签: visual-studio-2008 visual-c++ visual-studio-2005 visual-c++-6
你预见到的所有问题是什么。
【问题讨论】:
标签: visual-studio-2008 visual-c++ visual-studio-2005 visual-c++-6
上面 #3 的一个简单示例是 for 循环:
for( int n = 0; n < someMax; ++n )
{
// do stuff
}
printf("Did %d stuffs", n);
此代码在 VC6 中有效,但在 VC9 中无效。它实际上是一个格式错误的程序——VC6 允许它是 VC6 中的一个缺陷。
从 VC6 移植到 VC9 的决定不是灌篮。您必须考虑项目的难度,并与您获得的任何收益和避免的任何问题进行平衡。
在决定是否以及如何开展此项目时,您应该查看 Microsoft 的重大更改列表。第一个列表,从 VC6 到 VC7 的重大更改,是一个巨大的列表。相比之下,其他的要小得多。这表明如果你从 VC6 移植到任何东西,它应该至少是 2005 年。
【讨论】:
你说的代码库有多大?
移植一个小程序(主要是非模板化的 C++ 代码)应该是相当简单的。
然而,我曾经不得不将 100.000 行使用模板的代码从 VC6 转换为 VC2005,这是一个噩梦般的一周(工作 5 天),主要问题是我必须手动修复大约 30%问题(70% 是相当微不足道的,可以通过搜索和替换来解决它们)。但更多的问题是旧代码没有测试用例和测试框架,所以即使我让应用程序编译并且没有段错误,看起来还不错(?),我不能保证它实际上工作的一切正如它应该的那样。
所以实际上我的建议是考虑代码的大小和测试的可用性,并考虑代码是否真的需要移植(在我的情况下是“是”,但并非总是如此,尤其是如果软件很快就会淡出)
【讨论】: