Visual C++2013从入门到精通(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-06 01:21:41

点击下载

作者:朱文伟,夏毓彦

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Visual C++2013从入门到精通

Visual C++2013从入门到精通试读:

前言

这是一本Visual C++入门的经典书籍。任何学过C/C++语言并立志成为一名Windows开发工程师的朋友,都可以从本书起步。本书虽然有点厚实,但内容通俗易懂,由浅入深,并且实例丰富,步骤详细,注释充分,相信大家都能看得懂。对于中高级开发人员,也可以通过本书快速上手Visual C++ 2013这个强大的开发工具。本书并没有讲述C++语言部分,因为这是一本Windows编程的书籍,里面都是实实在在Windows编程的干货。此外,实例丰富是本书的一大特点,大家知道,编程开发光了解理论是不够的,只有自己上机调试运行下例子,才能深刻理解编程,尤其对于Visual C++更是如此。另外,为了照顾初学者,每个实例步骤非常详细,从建立工程到运行工程,都有着丰富的注释,步骤注释详细是本书的另外一大特点。

Visual C++在当前Windows编程开发平台上已是霸主地位,其功能之强大令人叹为观止。希望大家能够通过本书的学习,打好Windows开发的基础,早日成为Visual C++高手。

本书配套一张DVD光盘,按本书各章分10个目录为读者提供示例项目文件,读者可以在阅读示例的时候,运行这些项目以加深对相关内容的理解,并培养自己动手编程的能力。

虽然作者尽了自己最大努力,但是不可避免地在书中仍然会有一些小错误出现。希望大家斧正,作者的邮箱是itrzw@sohu.com,关于本书的最新动态和错误列表,可以关注作者博客http://itrzw.blog.sohu.com/,读者反映的建议或书中错误会更新到博客上。本书所有例子都在Windows 7上用Visual C++ 2013编译通过。非特别说明,默认情况下工程字符集都是Unicode版本,这也是Visual C++ 2013默认采用的字符集。

此外,为了帮助初学者顺利求职成功,对于购买本书的读者在求职试用期内提供免费的技术咨询服务,具体情况详见博客http://itrzw.blog.sohu.com/。编者2017年2月第1章Visual C++ 2013概述1.1 Visual C++ 2013简介

Visual C++ 2013(简称Visual C++ 2013)是美国微软公司推出的可视化开发工具包Visual Studio中的一个专门用来开发C/C++程序的集成开发环境(Integrated Development Environment,IDE)。对于集成开发环境相信大家不陌生了,它通常包括属性编辑器、解决方案/工程管理器、代码编辑器、类浏览器和调试器等。当前比较流行的开发工具,如Eclipse、Visual C#、C++ Builder和PowerBuilder等提供的都是集成开发环境。Visual C++也不例外,它从6.0开始,我们就体验到它的强大功能了。在IDE中,可以把工程管理、代码编辑、代码编译、代码调试、控件拖放等工作放在一个图形界面中完成,大大提高了开发效率。

Visual C++ 2013是当前流行的Windows开发工具。通过它可以开发多种类型的Windows程序,比如传统的Windows 32程序、MFC程序,还能开发ATL程序、托管的CLR(公共语言运行库)等。相比以前的Visual C++开发环境,Visual C++ 2013提供了更为简便优化的界面,并加入了针对Windows 8项目的可视化的工具集。在语言方面也增强了对ISO C99的支持,C99标准是ISO/IEC 9899:1999 - Programming languages -- C的简称,是C语言的官方标准第二版。1999年12月1日,国际标准化组织(ISO)和国际电工委员会(IEC)旗下的C语言标准委员会(ISO/IEC JTC1/SC22/WG14)正式发布了这个标准文件。在ANSI标准化发布了C89标准以后,C语言的标准在一段相当的时间内都保持不变,尽管C++继续在改进。(实际上,Normative Amendment1在1995年已经开发了一个新的C语言版本(即C95)。但是这个版本很少为人所知。)标准在20世纪90年代才经历了改进,这就是ISO/IEC 9899:1999(1999年出版)。这个版本就是通常提及的C99。C99标准定义了一个新的关键字_Bool,它是一个布尔类型。以前,C程序员总是使用自己的方法定义布尔类型,可以使用char类型表示一个布尔类型,也可以使用int类型表示一个布尔类型,现在可以在C语言中直接使用布尔类型了。

如果你以前一直用Visual C++开发环境,相信能很快上手Visual C++ 2013。但和以前版本相比,默认情况下Visual C++ 2013中不再包含对多字节字符编码的支持,新建的工程都使用的是Unicode字符集。如果在工程属性中选择“多字节字符集”,编译的时候会报错。解决这个问题的方法是为Visual C++ 2013增加多字节字符库,可以去微软官方网站下载这个库文件,网址是:

https://www.microsoft.com/zh-cn/download/details.aspx?id=40770

下载后直接安装,重启Visual C++ 2013即可,然后再在工程属性中选择“多字节字符集”,编译时候就不会出错了。

Visual C++ 2013提供了强大、灵活的开发环境,可用于创建基于传统Windows程序和最新的.NET程序。Visual C++ 2013非常庞大,但主要包括下列组件:(1)编译工具

Visual C++ 2013编译工具是支持面向x32和x64位的编译器,支持传统本机代码开发和面向虚拟机平台,如CLR(公共语言运行库)。注意,Visual C++ 2013不再支持Windows 95、Windows 98、Windows ME和Windows NT平台。(2)Visual C++库

包括标准C++库、活动模板库(ATL)、Microsoft基础类库(MFC库)。这些库由iostream库、标准模板库(STL)和C运行时库(CRT)组成。其中STL/CLR库为托管代码开发人员引入了STLK。(3)开发环境

Visual C++ 2013开发环境为项目管理与配置(包括更好地支持大型项目)、源代码编辑、源代码浏览和调试工具提供强力支持。该环境还支持IntelliSense,该功能十分有用,用户编写代码时,可以提供智能化且特定于上下文的建议。

俗话说,工欲善其事,必先利其器。本章主要介绍Visual C++ 2013集成开发环境中的窗口元素、操作界面、定制集成开发环境、附属工具及如何使用帮助系统等内容。通过本章的学习,读者可以对Visual C++ 2013的集成开发环境有较为深入的理解。1.2 安装Visual C++ 2013及其帮助

Visual C++ 2013必须在Windows 7或以上版本的操作系统上安装,并且IE浏览器的版本要达到10。满足了这2个条件后,就可以开始安装了。

和大多数Windows应用程序一样,安装十分简单。先获取Visual C++ 2013的ISO文件,然后加载到光驱,再在虚拟光驱里找到安装文件,如vs_ultimate.exe,双击它即可开始安装。

Visual C++ 2013安装完毕后是不自带帮助文件的,如果需要帮助文件,可以在网上下载VS 2012的帮助文件,如VS2012Documentation.iso,这个ISO文件里面没有安装文件,它必须在Visual C++ 2013中安装。首先把VS2012Documentation.iso加载到虚拟光驱,接着打开Visual C++ 2013,选择菜单“帮助”/“添加和移除帮助内容”,然后会出现“Microsoft帮助查看器”。然后在帮助查看器上选择所要安装的条目。

安装完帮助后,以后有问题只要选择相应的函数,然后按F1,即会跳出帮助程序,并自动跳转到相关内容。1.3 认识Visual C++ 2013集成开发环境1.3.1 起始页

第一次打开Visual C++ 2013集成开发环境时,会出现Visual C++ 2013的起始页,如图1-1所示。图1-1

在起始页上,我们可以进行“新建项目”“打开项目”等操作,并且最近打开过的项目也能在起始页上显示。如果开发者的电脑能连接Internet,起始页上还会自动显示一些微软官方的公告,产品信息等。如果不想让IDE每次启动都显示起始页,可以把起始页左下角处的“启动时显示此页”旁边的勾去掉,这样下一次打开IDE的时候,起始页不再显示。不显示起始页其实也有好处,就是每次都是联网显示新闻公告等,能加快IDE的打开速度。

如果某天又想每次启动IDE都显示起始页了,可以单击主菜单“视图”|“起始页”来打开起始页,如图1-2所示。图1-2

然后在起始页的左下角处把“启动时显示此页”旁边的勾选中,这样下次启动IDE的时候就能显示起始页了。1.3.2 主界面

在Visual C++ 2013主界面上,集成开发环境的操作界面包括7个部分:标题栏、菜单栏、工具栏、工作区窗口、代码编辑窗口、信息输出窗口和状态栏,如图1-3所示。图1-31.3.3 标题栏

在标题栏上可以看到当前工程的名称和当前登录操作系统的用户类型,比如管理员类型,那么开发的程序可以对内核进行操作。另外,在标题栏的右边有个反馈按钮,单击它会弹出一个下拉菜单,如图1-4所示。图1-4

其中有个“MSDN论坛”菜单项,通过它我们可以直接访问MSDN论坛,这个论坛有很多技术论题,我们遇到问题也可以去讨论。1.3.4 菜单栏

Visual C++ 2013的菜单栏位于主窗口的上方,包括“文件”“编辑”“视图”“项目”“生成”“调试”“团队”“工具”“测试”“体系结构”“分析”“窗口”“帮助”13个主菜单。IDE的所有功能都可以在菜单里找到,比如“文件”菜单里面可以进行文件、项目和解决方案的打开和关闭,以及IDE的退出等,如图1-5所示。图1-5

很多菜单功能都会用到,所以我们一开始也没必要每项菜单都去熟悉,用到的时候自然会熟悉,而且有些菜单功能不如快捷键来得方便,比如启动调试(F5)、单步调试(F10/F11)、开始运行(Ctrl+F5)等。1.3.5 工具栏

工具栏提供了和菜单几乎一一对应的命令功能,而且更加方便。Visual C++ 2013除了提供标准的工具栏之外,还能自定义工具栏,把一些常用的功能放在工具栏上,比如在工具栏上增加“生成解决方案”和“开始执行(不调试)”按钮。默认情况下,工具栏上是没有“生成解决方案”和“开始执行(不调试)”按钮的,在执行程序的时候每次都要进入菜单“调试”|“开始执行(不调试)”来启动程序,非常麻烦,虽然有Ctrl+F5这个快捷键,但也要让手离开鼠标,对于懒人来讲还是有点痛苦的。因此,最好能在工具栏上有这么一个按钮,只要鼠标点一下,就启动执行了。“生成解决方案”相当于把修改过的工程原码都编译了一遍,在不需要执行的时候,也会经常用到,因此也要让它显示在工具栏上。步骤如下:

步骤01 添加一个自定义的工具栏。打开Visual C++ 2013的集成开发环境,然后在工具栏上的右边空白处右击,会出现一个右击菜单,在右击菜单里选择最末一项“自定义”,在“自定义”对话框上,单击“新建”按钮来新建一个工具栏,如图1-6所示。

自定义的工具栏的名称保持默认即可,如图1-7所示。图1-6图1-7

然后单击“确定”,则在集成开发环境的工具栏上会多出一个工具栏,但不仔细看是看不出来的,因为我们还没给它添加命令按钮。

步骤02 在“自定义”对话框上选择“命令”,在“命令”页上,选择“工具栏”,然后在右边选择“自定义1”,如图1-8所示。图1-8

然后单击“添加命令”按钮,出现“添加命令”对话框,在“添加命令”对话框的左边“类别”下面选择“生成”,在右边“命令”下面选择“生成解决方案”,如图1-9所示。

然后单击“确定”按钮。此时,我们新建的工具栏上就有了一个“生成解决方案”按钮了。

步骤03 再添加“开始执行(不调试)”按钮。同样,在“自定义”对话框上,单击“添加命令”,然后在“添加命令”对话框上,在左边“类别”下面选择“调试”,在右边“命令”下面选择“开始执行(不调试)”,如图1-10所示。图1-9图1-10

最后单击“确定”按钮关闭“添加命令”对话框,再关闭“自定义”对话框,此时我们新建的工具栏上又多了一个按钮,共有2个按钮了,如图1-11所示。图1-11

用线框起来的地方就是我们新建的工具栏,上面已经有我们添加的命令按钮了。1.3.6 类视图

类视图用于显示正在开发的应用程序中的类名及其类成员函数和成员变量。可以在“视图”菜单中打开“类视图”窗口。类视图分为上部的“对象”窗格和下部的“成员”窗格。“对象”窗格包含一个可以展开的符号树,其顶级节点表示每个类,如图1-12所示。1.3.7 解决方案资源管理器

这个视图显示的是当前解决方案中的各个工程,以及每个工程中的源文件、头文件、资源文件的文件名,并且分类显示,如果要打开某个文件,直接双击文件名即可。我们还能在解决方案管理器中删除文件或添加文件。如图1-13所示就是一个解决方案管理器。图1-12图1-131.3.8 输出窗口

输出窗口用于显示程序的编译结果和程序执行过程中的调试输出信息,比如我们调用函数OutputDebugString就可以在输出窗口中显示一段字符串。通过“视图”菜单的“输出”菜单项打开输出窗口,如图1-14所示。图1-141.3.9 错误列表

错误列表用来显示编译或链接的出错信息。双击错误列表中的某行,可以定位到源代码出错的地方。通过“视图”菜单的“错误列表”菜单项打开输出窗口,如图1-15所示。图1-151.3.10 设置源码编辑窗口的颜色

默认情况下,源代码编辑窗口的背景色是白色,代码文本颜色是黑色,这样的颜色对比比较强烈,看久了容易眼睛疲劳,为此我们可以设置自己喜欢的背景色。方法是在主界面菜单上选择“工具”|“选项”,打开“选项”对话框,然后在左边展开“环境”,在展开的项目的末尾找到并选中“字体和颜色”,接着在右边显示项中选择“纯文本”,就可以在旁边通过设置“项前景”和“项背景”来设置源代码编辑窗口的前景色和背景色,如图1-16所示。图1-161.3.11 显示行号

默认情况下,源码编辑窗口的左边是不显示行号的,如果要显示行号,可以在主界面菜单上选择“工具”|“选项”,打开“选项”对话框,然后在左边展开“文本编辑器”,在展开的项目中找到并选中“C/C++”,接着在右边就可以看到“行号”,如图1-17所示。图1-17第2章Windows编程基础2.1 开发Windows程序的三种方式

用Visual C++ 2013开发Windows图形界面应用程序有三种方式:SDK方式、MFC方式和托管方式。2.2 SDK方式

SDK方式使用C语言和Windows应用程序编程接口(Windows API)来开发Windows应用程序,Windows API里面都是C函数,类似于C语言的标准函数库,只是Windows API这个函数库(或称开发包)用来开发Windows应用程序。微软通过Windows软件开发包(Windows Software Development Kit,SDK)来提供Windows API。这种方式是早期开发Windows应用程序的唯一方式,现在在界面开发中用的不多,但在非界面领域,比如多线程、网络、图形图像等某些对速度要求较高的场合会经常用到,SDK方式是底层的开发方式,熟悉了SDK方式后,对理解MFC方式大有裨益。用这种方式开发要求开发者熟悉C语言和Windows环境。这种方式开发的Windows程序习惯称为Win32程序。

用这种方式开发Windows应用程序的最大好处是只需熟悉C语言,不必学习C++语言,学会这种开发方式后能对Windows操作系统底层运行机制有相当深入的理解,而且这种方式开发出来的程序相对其他两种方式运行速度更快。下面我们来看一个最简单的Win32程序。

第一个Win32控制台程序

通常把在控制台(命令行窗口)中运行的程序称为Win32控制台程序,而拥有图形界面的Win32程序称为Win32应用程序。控制台应用程序很简单,相信大家学习C语言的时候已经用的很熟练了,这里不再赘述。很多C语言书上开头都会有一个“Hello World”程序,它的代码是这样的:

下面,我们也写一个“Hello World”程序作为我们第一个Win32应用程序。程序很简单,就在屏幕上出现一个对话框,对话框上面有一段文本“Hello World”。【例2.1】 第一个Win32应用程序(1)打开Visual C++ 2013,选择菜单“新建”|“项目”,或直接按快捷键Ctrl+Shift+N,弹出“新建项目”对话框,在该对话框上,在左边展开“模板”|“Visua C++”|“Win32”,在右边选中“Win32项目”,如图2-1所示。图2-1

然后在下面“名称”文本框中输入项目名称,如“Test”,并输入一个项目位置。最后单击“确定”按钮。随后会出现“Win32应用程序向导”对话框,单击左边的“应用程序设置”,然后在右边的附加选项下选择“空项目”,如图2-2所示。图2-2

最后单击“完成”按钮。此时,一个空的项目完成了,下面我们开始添加文件和代码。(2)在“解决方案资源管理器”上,展开Test,对“源文件”右击,在右击菜单上选择“添加”|“新建项”,出现“添加新项”对话框,在该对话框上,选择“C++文件(.cpp)”,并输入名称“Test.cpp”,如图2-3所示。图2-3

最后单击“添加”按钮。此时在IDE上会自动打开Test.cpp这个文件。然后我们开始输入代码。(3)在Test.cpp中输入代码如下:

是不是看上去很熟悉,和传统的C语言版本的“Hello World”程序的结构很类似。在这段程序中,windows.h是所有C语言开发Windows程序时必须要包含的,Windows API编程所需的系统头文件和宏定义都在该文件中包含。

WinMain相当于以前程序的main函数,它是Windows程序的入口点,它有4个参数,其中参数hInstance是当前程序的实例句柄;hPrevInstance现在不用,总是为NULL;lpcmdLine是一个字符串指针,表示传进来的命令行参数,如果用户是在命令行下运行本程序,那么输入的命令行可以由该参数获得;nCmdShow表示程序刚刚运行的时候窗口显示的方式(比如正常大小显示、最大化显示或最小化显示)。

WinMain前面的WINAPI是一种函数调用约定,它定义了函数参数入栈的次序是从右到左,WINAPI在minwindef.h中有定义:

MessageBox是我们接触到的第一个Windows API函数,它的功能是跳出一个小的对话框,对话框中间会显示一行字符串“Hello World”,标题栏会显示字符串“我的第一个程序”。字符串前面的TEXT是一个系统定义的宏,它主要是让字符串支持Unicode环境和多字节环境,关于Unicode以后会讲到。

MessageBox该函数的声明如下:

该函数显示一个消息框。其中,hWnd表示拥有该消息框的窗口句柄;lpText表示消息框显示的内容;lpCaption表示消息框显示的标题;uType是图标和按钮的风格组合,常见的uType取值有:● MB_OK:消息框显示“确定”按钮。● MB_ABORTRETRYIGNORE:消息框显示“终止”“重试”“忽

略”按钮。● MB_YESNOCANCEL:消息框显示“是”、“否”和“取消”按

钮。● MB_ICONEXCLAMATION:消息框显示感叹号图标。● MB_ICONQUESTION:消息框显示问号图标。

函数的返回值可以是下列各值:● IDABORT:用户选择了退出按钮。● IDCANCEL:用户选择了取消按钮。● IDCONTINUE:用户选择了继续按钮。● IDIGNORE:用户选择了忽略按钮。● IDNO:用户选择了否按钮。● IDOK:用户选择了OK按钮。● IDRETRY:用户选择了重试按钮。● IDTRYAGAIN:用户选择了Try Again按钮。● IDYES:用户选择了是按钮。图2-4

这些取值都是系统预定义的宏,可以直接使用。(4)开始运行工程。单击菜单“调试”|“开始执行(不调试)”,或直接按Ctrl+F5来运行工程,运行结果如图2-4所示。2.3 MFC方式

MFC方式使用标准C++语言和微软基础类库(Microsoft Foudation Class Library,MFC)来开发Windows应用程序,这里所说的标准C++语言是指ANSI/ISO C++语言。MFC库是一个C++类库,它通过把Windows API进行C++封装,屏蔽了Windows编程的内部复杂性,并通过集成开发环境的帮助,使得Windows界面开发可以以可视化的方式进行。MFC方式比SDK方式的开发效率高(注意是开发者的开发效率,不是指程序运行速度),是Visual C++开发界面程序的主流选择。这种方式要求开发者熟悉标准C++和Windows程序基本运作过程。这种方式开发的Windows程序习惯称为MFC程序。2.3.1 通过向导生成一个简单的MFC程序

Visual C++ 2013对MFC开发提供了强大的可视化操作,甚至不需要编写一行代码,只需通过Visual C++ 2013提供的向导就可以生成一个完整的程序。下面我们通过向导来生成一个简单的MFC程序。【例2.2】 通过向导生成一个简单的MFC程序(1)打开Visual C++ 2013,选择菜单“新建”|“项目”,或直接按快捷键Ctrl+Shift+N,弹出“新建项目”对话框,在该对话框上,在左边展开“模板”|“Visual C++”|“MFC”,然后在右边选择“MFC应用程序”,如图2-5所示。图2-5图2-6

接着在下方“名称”文本框中输入项目名称,在“位置”文本框中输入项目存放路径,最后单击“确定”按钮。随后出现“MFC应用程序向导”对话框,在该对话框的左边选择“应用程序类型”,然后在右边选择应用程序类型为“多个文档”,项目类型为“MFC标准”,接着单击“完成”按钮。此时一个多文档类型的MFC程序的框架完成了,而我们无须写一行代码。(2)开始运行工程。单击菜单“调试”|“开始执行(不调试)”,或直接按Ctrl+F5键来运行工程,运行结果如图2-6所示。2.3.2 手工写一个简单的MFC程序

上面我们没有写一行代码就生成了一个MFC应用程序,所有代码都是Visual C++自动生成的。现在我们自己动手来写一个MFC应用程序,不借助向导。【例2.3】 手工写一个简单的MFC程序(1)打开Visual C++ 2013,选择菜单“新建”|“项目”,或直接按快捷键Ctrl+Shift+N,弹出“新建项目”对话框,在该对话框上,在左边展开“模板”|Visua C++|Win32,在右边选中“Win32项目”,如图2-7所示。图2-7

然后在下面“名称”文本框中输入项目名称,如“Test”,并输入一个项目位置。最后单击“确定”按钮。随后会出现“Win32应用程序向导”对话框,单击左边的“应用程序设置”,然后在右边的附加选项下选择“空项目”,如图2-8所示。图2-8

最后单击“完成”按钮。某些同志可能会疑惑,我们要建立的是MFC程序,怎么会新建一个Win32项目,这是因为只有Win32项目才有空项目这个选项,而不需要向导生成任何代码,我们需要在空项目中添加C++源文件和头文件。如果选择MFC项目则肯定会有一大堆向导代码。(2)在“解决方案资源管理器”上,展开Test,对“源文件”右击,在右击菜单上选择“添加”|“新建项”,出现“添加新项”对话框,在该对话框上,选择“C++文件(.cpp)”,并输入名称

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载