你预见到这一切的问题是什么?
Microsoft不再以任何方式支持VC 6.如果出现问题,无论出于什么原因我们都无法编译,我们将无法获得微软的任何帮助.以这种方式似乎不太可能出现问题,但如果有问题的代码是收入的主要来源,那么你就可以平衡事情.
在VC6中编译64位代码是不可能的.32位程序在64位Windows上运行 - 至少目前如此.但是,如果您需要利用创建本机64位产品的潜在速度和内存增益(例如,在一个进程中能够使用超过3 GB的RAM),那么VC6就不存在了.
VC9具有更好的标准兼容性.VC6的标准合规性非常差.这实际上既是移植的理由,也可能是不合理的理由.使用VC6的程序员习惯于"错误的方式"做事,而且大部分代码都需要重构才能在VC9中运行.
上面#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年.
VC 2005 - 2008中的重大变化(VC 2005 - > VC 2008)
Visual C++ 2005编译器中的重大变化(VC 2003 - > VC 2005)
Visual C++ .NET 2003中的重大变化(VC6 - > VC 2003)