|
VC6 |
VC2005 |
备注 |
|
编译速度 |
快 |
慢 |
-- |
|
对C++标准和STL的支持程度 |
不好,特别是对一些模板库的支持不好,例如list; 某些C++语法要求不是很严密,最明显的就是for循环中的初始化变量 |
对C++标准支持更好,更严密 |
VC6发布的时候,当时国际C++组织还没有将C++完全标准化,所以VC6对C++标准的支持不好是理所当然的。据说可以使用Intel C++ 8.1来代替VC6的库即可支持C++标准 http://blog.csdn.net/lonelyforest/articles/663934.aspx |
|
调式多线程 |
偶尔莫名其妙会Freeze,只有把进程Kill掉后重新来过 |
未发现问题 |
VC6 SP6可能解决这个问题? |
|
内联汇编代码的书写 |
偶尔会提示非法操作 |
未发现问题 |
-- |
|
Tab页浏览 |
不支持 |
支持 |
VC6可以通过第三方插件实现像VC2005一样的多Tab式浏览 |
|
Custom Build Rules |
不支持 |
支持 |
这项功能可以在Visual Studio中实现混合交叉编译,例如在VC2005中可以直接将*.cu文件编译成CUDA模块,或者将.fx文件编译成Shader执行文件等等。VC6中却不能这么做。 |
|
内存管理 |
在Vista及其后续操作系统上可能有问题 |
SP1版本的VC2005不会有问题 |
Visual Studio 98发布之时并没有考虑到今天的Vista这么严格的内存管理,因此可能存在兼容性问题。所以在Vista上安装VC6的时候,会给出提示,虽然我们可以强制安装,但是在运行的过程中可能会产生缓冲溢出问题 |
|
64位硬件驱动开发 |
不支持 |
支持 |
-- |
|
对SDK的支持 |
可能不支持最新的SDK |
目前支持最新版本的SDK |
像VC2008 SDK,微软官方是声明VC6不支持的。MS声称VC6最新支持到Platform SDK for Windows 2003 |
|
是否需要额外的vcredist_x86.exe分发包 |
不需要 |
需要 |
这恐怕是最严重的问题了,VC6 CRT和MFC对应的DLL在XP后的系统上都自带(msvcp.dll需要额外添加) VC2005则要考虑再发布包的问题 |
|
编译出来的模块的尺寸 |
-- |
-- |
VC2005相比于VC6并不会在尺寸上有什么优势。(需验证) |
|
代码编写和调试效率 |
低 |
高 |
由于VC2005在IDE上较VC6有大的更新,所以其开发效率是VC6所不能比拟的。至于调试效率,也是VC2005较高,例如VC6中只有一个Memory查看窗口,而VC2005则同时提供了4个Memory查看窗口:
|
|
VC6的Memory Output Window |
VC2005的Memory Output Window |
|||