VC++6.0调试时注意事项
VC++6.0是Windows平台上的C++编程环境,学习VC要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大,对标准的C99支持不好也是很正常的事情。
GNU Dev C++ 4.9.9.2,2005年最后一版,据说对C++标准支持比较好,再后来有wx-devcpp继续了它的道路,至今一直继续升级。我个人的使用经验是这样,如果你把VC++6.0当成一个C语言的IDE可能还不错。
但是编译C++程序,恐怕就有点牵强了,我平时写得C++代码[如果没有语法错误的话],VC++6.0即使打上SP6补丁相信90%以上的可能性编译不过去。Dev C++ 4.9.9.2可以编译过去的可能性相信会超过98%。如果写C程序,假如没有语法错误的话,VC++6.0和GNU Dev C++ 4.9.9.2基本上都可以编译成功。
由于都是IDE,VC++6.0调试程序更方便一些,用VC++6.0可以开发C应用程序,Win32应用程序,还可以方便的使用MFC开发很多应用程序,不过问题是,MS的IDE新版本有很多时候并不兼容VC++6.0,有些函数的参数重新修订,有些函数和类已经废弃,有些已经改名,当然还扩充了不少。
VC++6.0对STL支持不佳是很正常的事情,比如getline库函数本身有bug,list成员函数sort本身有bug,还有很多其他问题,VC++6.0对模板支持很差,对友元支持很差,还有很多方面支持很差。对模板支持差,这种情况一直到VS2003(C++7.0)都没有很好的解决,VS2003不支持模板的偏特化。
GNU Dev C++ 4.9.9.2比较小,安装后大约50M大小(VC++6.0安装后至少几百M),可以开发C,C++,Win32应用程序等等,使用Dev C++ 4.9.9.2编译C++程序,用的是g++3.4.2编译器。Dev C++对标准C++支持较好。
据我所知,仅仅友元模板函数在类里面实现可以正常编译,但是放到类外就不行,到目前为止仅仅发祥这一个问题,还有一个问题就是代码最大优化,你需要便宜环境设置里面加上命令-O3。另外,我还使用过Intel C++ 9.0,以插件的形式安装在VC++6.0这个IDE上,对C++的支持力度仅次于Dev C++ 4.9.9.2,但是编译代码以后执行速度稍快一点。
如果你喜欢使用MS的编译器,建议使用VC++8.0[VS2005],缺点是占据硬盘空间很大,加上MSDN,至少2GB以上。如果你是C++初学者,使用环境Windows平台,GNU Dev C++ 4.9.9.2(g++3.4.2)可能是你非常好的选择。如果你使用linux平台,可以升级g++编译器版本到4.2.1甚至更高。
VC作为一个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的。严格的来说VC++6.0不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以把C++看作为一种“工业标准”,而VC++则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“工业标准”的前提下扩展而来的。
VC++应用程序的开发主要有两种模式,一种是WIN API方式,另一种则是MFC方式,传统的WIN API开发方式比较繁琐,而MFC则是对WIN API再次封装,所以MFC相对于WIN API开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WIN API的相关内容为主线。