vcb6有什么副作用?

文志军文志军最佳答案最佳答案

VC++ 6.0 是一个在 Windows 上开发的兼容 POSIX 的计算机环境,它允许开发人员使用 C 和 CPP 编写应用程序并运行于Windows上。由于微软的Visual Studio 2013开始不再支持vc6,所以网上有很多关于怎样迁移代码到Vs2012甚至Vs2013上的文章。但是很多都没有讲到一点,那就是这些移植工作其实是在Windows平台下进行的,那么最终这些C/Cpp程序在Linux下的运行效果如何就不得而知了(除非你刻意地测试过)。而且用Win64版本编译器在win64平台上跑的速度肯定比在Linux上面快多了!这就是一个隐患——Windows平台的优化可能让你忽视了跨平台的效率问题。

举个例子: 你用一个win64平台进行编译并且生成对应的lib库,然后你的Linux平台下面的程序去链接调用这个库,这就没有问题;但是你如果用同样win64平台下面vs2013或者gcc4.9再重新编译一次那个库然后再让你的linux平台下的程序去链接调用它,你会发现速度明显快了好多!这是因为微软的优化可能是针对windows平台进行优化的而不是完全从POSIX角度出发的。这种差异会导致一些莫名其妙的情况发生。 另外就是win64版本的程序在Linux上面的可维护性会差点因为很多Linux发行版并不安装有微软的C/Cpp运行时库,这样你就要么手动安装要么就编译的时候添加-D_WINDOWS 定义来使得代码能够在没有运行时库的情况下也能正确执行。

最后总结一句,虽然VC6已经老去,而且其支持的C/Cpp语言版本也很低级(只能支持到C99和CPP11),但是如果你需要对古老的C/Cpp代码进行维护或者修改的时候还是建议使用VC6。否则一旦引入新的运行时环境库或者是新的编译器特性而你又没有注意到的话那你就哭吧。哦,忘了说,因为VC6支持DX9,所以你可以在不升级显卡驱动的情况下正常渲染POV-Ray的射线追踪结果图!

我来回答
请发表正能量的言论,文明评论!