你预见到的所有问题都是什么。
答案 0 :(得分:8)
上面#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年。
答案 1 :(得分:3)
您谈论的代码库有多大?
移植一个小程序(主要是非模板化的C ++代码)应该是相当简单的。
然而,我曾经不得不将100.000行模板使用代码从VC6转换为VC2005,这是一个噩梦般的一周(工作5天),主要问题是我必须手工修复约30%的问题(70%是相当微不足道的,可以用搜索和替换来修复它们)。但更多的问题是旧代码没有测试用例而没有测试框架,所以即使我得到应用程序编译而不是段错误,看起来没问题(?),我也无法保证它实际工作的一切因为它应该是。
所以实际上我的建议是考虑代码的大小和测试的可用性,还要考虑代码是否真的需要移植(在我的情况下是的,但并非总是如此,尤其是如果软件即将淡出)