写在前面在我还在上学的时候,我选择了C++,最初我用VC6作为我的IDE,我看过很多本C++的教材,有的适合我,有的不适合我,其中有一本叫《VisualC++2005入门经典》的书帮了我不少的忙。因为通常的C++教材都只会介绍C++的语法什么的,很少会告诉我们如何去编译、运行,告诉我们什么是控制台程序,什么事Win程序,什么是GUI程序,C++能干什么,VC和C++的区别是什么。现在有很多的朋友应该也有这些问题吧?学C++用C++也有几年了,算不上熟悉,算是初窥门径吧,我想我应该做点什么帮助一下那些和曾经的我一样困惑的朋友,特别是学生朋友,告诉他们他们所困惑的问题的答案。记得我学C++的时候,没有人教,有的时候也走了不少弯路,甚至连调试也不会,也不知道可以通过看调用堆栈看调用次序,还自己慢慢的去搜索,好傻啊。接下来我会做一个《VisualC++2010入门教程》系列,用来帮助初学者。刚开始学的时候是很痛苦的,这个我深有体会,特别是身边还没有人能够指导一二的。内容主要涵盖在Windows下面使用C++进行开发的常见内容,VisualStudio2010的使用,如何创建新项目,如何调试,如果配置项目属性等等,另外还会介绍VisualC++2010中新加如的一些内容,包括一些新的STL组建,一些新的语法支持等等。由于本人水平有限,其中难免有错误,希望大家谅解,如果大家有发现问题还请务必及时指出来,否则误导了他人我就罪不容恕了。注意,本教程非C++教程,不会教你C++,只会教你如何使用VisualC++2010去练习去学习其它C++教材上面的程序。因此建议大家认真的去看其他的C++教程,在使用VisualC++2010实践的时候如果遇到问题可以到这里来参考。推荐《C++Primer》、《C++程序设计语言》《VisualC++2008入门经典》。第一章:关于VisualStudio、VC和C++的那些事首先,这三个东西有什么区别呢?VC和C++是相同的吗,有什么区别呢?我刚开始学C++的时候也有这样的问题,在这里我来替大家解释一下他们到底是什么。VisualStudio,我们一般都简称为VS,VC全称是VisualC++,C++就不用解释了吧?VisualStudio其实是微软开发的一套工具集,它由各种各样的工具组成,这就好像Office2007是由Word2007、Excel2007、Access2007等等组成的一个道理。其中VisualC++就是VisualStudio的一个重要的组成部分。VisualStudio可以用于生成Web应用程序,也可以生成桌面应用程序,在VisualStudio下面,除了VC,还有VisualC#,VisualBasic,过去还有VisualJ#,现在还有VisualF#等等组件工具,使用这些工具你可以使用C++语言、C#语言或者Basic语言(微软改进版)进行开发。这就好比桌上放着刀、叉、筷子,你可以用它们来吃饭,无论你用什么工具都可以,因为它们都是餐具的一种。VC,全称是VisualC++,它只是一个工具而已。C++是一门和C、Basic、C#、Java一个概念的东西,它是一门语言,这个概念就同汉语、英语、法语之间的关系一样。语言的可以不同,他们有的复杂有的精简,比如汉语,我个人认为这是这个星球上最复杂的语言;又比如电影《阿凡达》中外星人使用的语言,不过100都个单词而已。当然,语言并没有高低贵贱之分,而对语言掌握的好不好,说的好不好是有高下之别的。一个语言都有哪些要素呢?语法就是其中一个重要的方面,比如你要对你所喜欢的人表达爱慕之情,那么你应该说“我爱你”,你不能说“你爱我”,因为这搞错了主谓宾关系,因此我们通常都需要按照一定的规矩和原则表达才会让别人正确理解我们真正的含义。在我们的汉语中有一些成语,它们通常都比较简单短小,但是却能表达非常强烈的感情,而且效果非常好。比如你想骂一个坏人“你实在是太变态了,这种事情都干得出来。”你可以这样说:“你也太禽兽不如了!”对于编程的语言来说,其实也是有成语的,在我看来,这就是库函数。通常我们在编程的时候都推荐选择库函数,因为它通常会比较快一些。一直以来都有不少人混淆VisualC++和VisualStudio,其实最初VisualC++发布的时候还没有VisualStudio这个东西,VisualC++是一个独立的开发工具,与VisualBasic等并列,最后微软将它们整合在一起组成了VisualStudio。VisualC++从发布起到现在已经有10个大版本了,我们这里介绍的VisualC++2010就是VisualC++10,简称VC10。上朔10多年,VisualC++6.0发布了,这个被称为史上最经典的VC,现在有很多企业还在用它,大量的教材基于这个版本的VC来写的。然而实际上VC6并没有想象中的那么美好,孱弱的IDE,不完善的STL等等让它越来越不适应时代的发展,同时由于后来的版本和它的差别越来越大,让很多习惯于VC6教材的人在新版本上无所适从。VC6走向历史的终结点其实是必然的,只在于时间问题罢了,况且大部分人都有追求最新的“嗜好”,所以这里也选择最新版的VC来做入门教程。下面来介绍下这个VC版本和VS版本的对应关系:VisualStudio.net(2002)--VisualC++.net(2002)--VisualC++7.0-_MSC_VER值1300这个是微软推出.net战略之后的最早的一个版本的VC,这个版本相对VC6来说变化并不是很大,一些不标准的语法依然得到支持,不过IDE界面已经出现了VS时代的雏形。VisualStuido.net2003-VisualC++.net2003-VisualC++7.1-_MSC_VER值1310这个版本我觉得只能算是一个对.net2002的一个Patch版本,解决了一些Bug,不规《VisualC++2010入门教程》范的语法依然得到支持,比如for循环变量作用域的问题。VisualStudio2005-VisualC++2005-VisualC++8.0-_MSC_VER1400这个版本算是一个比较符合C++标准的VC版本了,微软为这个版本的VC加入了大量的增强版的C库函数(CRT函数),如strcpy_s之类,当然,这部分并不是C和C++标准所要求的。VisualStudio2008-VisualC++2008-VisualC++9.0-_MSC_VER1500这个版本应该是在Vista发布之后出的,如果你是在Vista或者Win7下面使用,那么应该选择这个版本。这个版本与VC2005变化并不大,不过它的SP1为C++带来一些新的STL库组件(tr1部分),以及MFC下面的Ribbon界面。VisualStudio2010-VisualC++2010-VisualC++10.0-_MSC_VER值1600.这个就是我们即将要介绍的版本,那么让我们来看一下它的启动画面吧。这个是VisualStudio2010中文旗舰版的启动画面。下一章中,我将教大家安装、配置VS2010/VC2010,以及如何使用它来创建第一个C++程序。如果你没有下载过VisualStudio2010的话,那么请你提前下载好它吧:第二章安装、配置和首次使用VS2010本章将帮助大家安装VisualC++2010,帮助大家做一些常见的配置,以及第一次使用它来写HelloWord程序。安装VisualC++2010是属于VisualStudio2010的一部分,这个在前一章中已经讲解过,实际上VisualC++2010也有更多的子版本,正如Windows7有旗舰版、家庭高级版、家庭初级版一样。在上一章的下载地址中有两个版本可以选择,我选择的时候旗舰版,这个功能最全面。如果你下载完毕了,应该有一个ISO镜像文件,如果你是从我给的地址下载的,那么那个序列号已经被替换成正版序列号,直接安装即可。下面是ISO文件截图:这就是光盘镜像文件,我们有多种方式可以安装它,你可以把它烧录成光盘,也可以用虚拟光驱软件安装它,由于这个ISO已经被修改过了,你甚至可以直接解压它,然后运行里面的setup.exe进行安装。这里我使用虚拟光驱进行说明,首先我假设你已经安装好了虚拟光驱软件DAEMONToolsLite,如果你还没有安装,请去游侠补丁网下载,因为在那里你总是能找到最新的免费版本。接下来我们通过虚拟光驱加载刚才下载好的ISO镜像:在弹出的对话框中选择我们下载好的ISO文件。这个时候,虚拟光驱里面已经替我们打开了ISO文件,有的机器可能会自动弹出安装提示,有的不会。如果自动弹出安装提示,那么直接通过即可,如果没有弹出,那么用资源管理器方式进入虚拟光驱点击Setup.exe即可开始安装。由于我已经安装好了VS2010,所以接下来无法给大家截图了,我就直接用文字描述吧。当弹出VS2010安装程序之后点下一步,然后我们可能会看到完全最小自定义这样的选项,我推荐大家选择自定义,因为只有这样我们才可以自定我们安装的目录。接下来会选择安装的组件。这个时候我们会看到大量的VS2010的组件,这里我们可以选择是否安装Basic是否安装C#等等,我在网上找到一些图片,虽然跟中文版2010不一样,大家大概的样子是一样的,大家就凑合着看看吧。下面是开始的界面,我们应该选择安装VS2010.上面这个时候选择同意。然后安装包会开始搜集信息:选择目录:然后就是开始安装了,注意安装的时候可能需要重启一两次。最后安装成功:配置当安装成功之后,我们就可以开始使用了,这里我先教大家做一些常见的配置,当然大家也可以直接用默认的设置,我这样配置主要是为了方便。下面通过开始菜单来启动VS2010吧:如果你是第一次开始,那么可能会让你选择默认的环境设置,我们要使用VC当然选择VC的配置:出现下面的画面表示已经成功安装和运行了。这是起始页面,以后你会经常见到它。注意,你可能会没有VAssistX这个菜单,因为这个是个外部工具,以后会给大家解释它的用处,现在暂时忽略。接下来让我们来做一些常见的设置。通过菜单工具》选项调出配置对话框,下面是一些常见的设置:调处行号,选择文本编辑器,所有语言,把行号打成勾。如果你想调整字体或者颜色,那么可以在这里选择:单击工具栏的空白区域,让我们把生成工具栏调出来:这样我们就可以直接在工具栏上面选择编译项目、编译整个解决方案、运行程序和调试程序了。选择生成工具栏旁边的小三角形可以自定,我们还可以添加一些按钮:单击自定义界面下面的添加按钮就可以添加新的按钮了,现在我们把开始执行(不调试)添加工具栏中:以前经常有人问我为什么我的程序闪一下就没了,这就是因为它们把调试(F5,那个实心的三角形)当成了运行(不调试,Ctrl+F5,空心带尾巴的三角形)了。当然是一闪而过啦。关于调试以后说到。HelloWorld.下面让我们用VC++2010也就是VC10来做一个控制台的HelloWorld程序吧。VC2010里面不能单独编译一个.cpp或者一个.c文件,这些文件必须依赖于某一个项目,因此我们必须创建一个项目。有很多种方法都可以创建项目,可以通过菜单:文件,新建,项目;也可以通过工具栏点击新建项目进行创建。这里我们点击起始页面上面的新建项目:点击之后进入新建项目向导:上面选择Win32控制台应用程序,名称中输入HelloWorld点确定,至于是否为解决方案创建目录我们暂时不管,那主要区别在于解决方案是否和项目文件在同一目录。接下来进入创建页面,在Win32应用程序向导的第一个页面直接点下一步即可:下个页面记得选择空项目,我们不需要预编译头:点击完成。这时候一个空的项目编译成功了,我们不妨编译一些试试。点击刚才添加的生成工具栏的生成按钮:这时候我们会遇到编译错