笔记开始时间:2018年7月11日
参考书:《Visual C++ 2013入门经典(第7版)》
书上代码下载:http://www.wrox.com/dynamic/books/download.aspx
系统环境:win10 64位
编程工具:Visual Studio Enterprise 2015(百度搜索下载,自行搜索密钥)
使用Visual C++学习障碍:在接触Windows编程细节之前,必须十分熟悉C++编程语言的功能。
用Visual C++可以开发的两大类应用程序:桌面应用程序和Windows Store应用程序
桌面应用程序:有应用程序窗口,窗口上有一个菜单栏、一个工具栏,窗口底部常常有一个状态栏,编程接口为win32。
Windows Store应用程序:界面完全不同于桌面应用程序,其重点是用户与数据直接交互操作的内容,而不是与菜单项和工具栏等控件的交互操作。
函数:程序里的所有可执行代码都包含在函数中,最简单的C++程序只包含main()函数。
数据和变量:数据存储在变量中。变量是一个明明的内存区域,可以存储特定类型的数据项。每个变量只能存储给定类型的数据(C++是类型安全语言)。
类和对象:类是定义数据类型的代码块,类的名称就是数据类型的名称。类类型的数据项称为对象。创建可以存储自定义数据类型变量时,就使用类类型的名称。
模板:就是用户创建的处方或规范,编译器使用模板可以在需要时自动在程序中生成代码。编译器从模板中生成类或函数代码取决于一个或多个模板变元(通常是类型),在使用类模板时,一般应显式指定模板变元。程序文件:源文件包含可执行代码,扩展名是.cpp。头文件包含可执行代码是用的元素的定义,例如类和模板的定义,扩展名是.h。
控制台应用程序:用户是在字符模式中通过键盘和屏幕与它们通信的,实质上是基于字符的命令行程序。
Windows编程:WIndows程序只能利用主机环境提供的函数来访问计算机的输入输出设备,直接访问硬件资源是不允许的。Windows操作系统总是控制着与用户的所有通信。
用户和Wndows桌面应用程序之间的本质是:任何给定时刻通常都可能有各种不同的输入。因为无法预知将要发生的是什么类型的输入,所以精心设计的Windows应用程必须准备好在任何时刻处理任何可能类型的输入。
事件驱动程序:操作系统收到用户的动作,并认为是事件。应用程序用户界面中发生的事件通常将导致执行一段特定的代码,程序的执行过程是由用户的动作序列决定的,这样的程序称为事件驱动程序。
过程化程序:输入由程序代码控制,而且只能发生在程序允许它发生的时候。
编辑器:创建和编辑C++源代码的交互式环境。
编译器:将源代码转换为目标代码存储在扩展名是.obj的目标文件中,并检测和报告编译过程中的错误。
链接器:组合编译器根据源代码文件生成的各种模块,从C++标准库中添加所需的代码模块,并将所有模块整合成可执行的整体,通常放在.exe文件中。链接器也能检测并报告错误(如程序缺少某个组成部分),或者引用了不存在的库组件。
库:预先编写的例程集合,通过提供专业制作的标准代码单元,支持并扩展了C++语言。库实现了一些操作,节省了用户亲自编写并测试这些操作代码的工作,大大提高了生产率。
标准C++库:定义了一组为所有ISO/IEC标准C++编译器所共用的基本例程,其中包括各种各样的常用例程。
Microsoft库:Windows桌面应用程序是由称作MFC的库支持的,MFC大大减少了为应用程序建立图形用户界面所需的工作。
项目:是构成某个程序的全部组件的容器,由几个包含用户代码的源文件组成,可能还要加上其他包含辅助数据的文件。某个项目的所有文件都存储在相应的项目文件夹中,关于该项目的详细信息存储在一个扩展名为.vcxproj的XML文件中,该文件同样存储在相应的项目文件中。
解决方案:是一种将一个或多个程序和其他资源(它们是某个具体的数据处理问题的解决方案)聚集到一起的机制。解决方案存储一个或多个项目有关的所有信息的文件夹,这样就有一个或多个项目文件夹是解决方案文件夹的子文件夹。与某个解决方案中的项目有关的信息存储在扩展名为.sln的文件中。当创建某个项目时,如果没有选择在现有的解决方案中添加该项目,那么系统将会自动创建一个新的解决方案。.suo文件没有那么重要,甚至可以删除,Visual C++会在打开解决方案时重新创建它。
预编译头文件:创建控制台项目时,默认选中的预编译头文件选项使该项目创建stdafx.h文件。当程序中有大量文件时这种机制可以使编译过程效率更高。少量代码时不必要。
创建控制台项目时Application Settings选项:
1.Precompiled header选项用于编译源文件。对代码进行修改或添加后,重新编译程序时,预先编译的、没有修改的代码就会重用。
2.Security Development Lifecycle Checks用于管理大型专业项目,可取消。
项目解决方案文件夹内容:
1. 扩展名为.sln的文件,记录关于解决方案中项目的信息;
2. 扩展名为.suo的文件,记录应用于该解决方案的用户选项;
3. 扩展名为.sdf的文件,记录与解决方案的IntellISense有关的数据。IntellISense是在Editor窗口中输入代码时提供自动完成和提示功能的工具;
4. 扩展名为.opensdf的文件,记录关于项目状态的信息。此文件只在项目处于打开状态才有;
5. ReadMe.txt文件包含已经为该项目创建的所有文件的内容摘要。
程序的Debug版本和Release版本:产生具体的可执行程序版本所对应的选项集合称为配置。当创建新的项目工作空间时,Visual C++自动创建可产生两种应用程序版本的配置。一种称作Debug版本,该版本包括帮助用户调试程序的信息。使用程序的Debug版本,可以在出现问题时单步执行代码,以检查程序中的数据值。另一种称作Release版本,它不包括调试信息,但打开了编译器的代码优化选项,以提供最高效的可执行模块。
Visual C++调整默认缩进:选择Tools|Options菜单项,显示Options对话框。在此对话框的左窗格中选择Text Editor | C/C++ |Tabs选项,会在右窗格中显示缩进项。默认情况下,编辑器插入制表符,但如果需要,也可以修改为插入空格。
关于main函数:所有ISO/IEC标准C++程序都是在main()函数中开始执行的。当使用Unicode字符时,微软公司还提供了相应的wmain函数。名称_tmain定义为mian或wmain(在tchar.h头文件中),这取决于程序是否将使用Unicode字符
常用快捷键:
Ctrl + F5 构建并执行项目