admin 管理员组

文章数量: 887021


2024年2月28日发(作者:striped horse啤酒)

第2章 Visual C++ 2010上机指南

2.1 Visual C++ 2010概述

Visual Studio是微软公司推出的目前流行的Windows平台应用程序开发环境。Visual

Studio 2010同时带来了 NET Framework 4.0、除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。

Visual C++ 2010 是Visual Studio 2010其中的一个模块 Visual C++ 2010是微软公司推出

的目前使用极为广泛的基于Windows平台的可视化集成开发环境(IDE)。包含了文本编辑器、资源编辑器、工程编译器、源代码浏览器、集成调试等工具以及一套联机文档。使用Visual

C++ 2010,可以完成创建、调试、修改C++应用程序等各种操作。

Visual C++ 2010提供面向对象技术的支持,它能够帮助使用MFC库的用户自动生成一个具有图形界面的应用程序框架。用户只需在该框架的适当部分添加、扩充代码就可以得到一个满意的应用程序。

Visual C++ 2010也作为C语言程序的常用的应用开发环境之一,C语言是C++的子集,C++是在C语言的基础上进行的扩展,C++已经包含了C语言的所有内容,Visual C++ 2010 只有创建C++文件的选项,没有创建C语言文件的选项。但是这并不影响使用,我们在填写源文件名称时把后缀改为.c即可,编译器会根据源文件的后缀来判断代码的种类。

如果使用Visual C++ 2010编写大型的C语言应用程序,一般采用层次文件结构,如图2-1所示。

解决方案文件工程文件1工程文件2工程文件n(vcxproj)源文件1(.c) 头文件1(.h)

源文件n(.c) 头文件n(.h)

图2-1 C语言应用程序文件结构

其中.sln这种类型的文件在Visual C++2010中是级别最高的,称为解决方案(Solution)文件 ,一般与一个具体的应用系统相对应。在Visual C++2010中,应用程序是以工程文件(Project)的形式存在的,文件的扩展名为.vcxproj,一个解决方案文件中可以包含多个工程文件,由解决方案文件对它们进行统一的协调和管理。每个工程文件中包含若干头文件和源文件。头文件(.h)包含的主要是函数、数据类型的说明和符号常量的定义等内容;源文件(.c)为实现文件,该文件包含的主要是函数的实现代码。在程序结构层面,每个工程文件有很多函数组成,但必须而且只能有一个主函数main()。

2.2 建立C语言应用程序

利用Visual C++ 2010提供的一种控制台操作方式,可以建立C语言应用程序, Win32控制台程序(Win32 Console Application)是一类Windows程序,它不使用复杂的图形用户界面,程序与用户交互是通过一个标准的正文窗口,下面我们通过编写简单的C语言应用程序,对Visual C++ 2010的使用初步的介绍。

2.2.1. 安装和启动

运行Visual Studio 2010 Express软件中的程序,选择安装Visual C++ 2010 学习版,然后按照安装程序的指导完成安装过程。

安装完成后,在开始菜单的程序选单中有Microsoft Visual Studio 2010项,选择其中的Microsoft Visual C++ 2010 Express即可运行(也可在Window桌面上建立一个快捷方式,双击即可运行)。

Visual C++ 2010 默认安装完成后:我们为了在执行程序时出现“结果窗口”,需要进行手动设置。详细操作参考

2.2.2 创建项目

用Visual C++ 2010系统建立C语言应用程序,首先要创建一个项目(project),用来存放C程序的所有信息。创建一个项目的操作步骤如下:

1). 进入Visual C++ 2010环境后,在上方菜单栏中选择“文件 —> 新建 —> 项目”命令,或者按下Ctrl+Shift+N组合键,都会弹出下面图2-2所示的对话框:

图2-2 创建项目

2). 屏幕上出现如图2-2所示的“新建项目”对话框后,选择“Win32”模板,选择“Win32

控制台应用程序”,(如果你安装的是英文版,那么对应的项目类型是“Win32 Console

Application”)填写好项目名称,选择好存储位置,点击“确定”按钮后会弹出图2-3向导对话框:

图2-3 “新建项目”输入对话框

3). 然后单击“下一步”按钮继续。如图2-4所示:

图2-4 “新建项目向导1对话框”

4). 屏幕上出现如图2-5所示的“新建项目向导2对话框”对话框,先取消“预编译头”,再勾选“空项目”,然后点击“完成”按钮就创建了一个新的项目。

图2-5 “新建项目向导2对话框”

2.2.3 添加C源程序文件

1). 选择主菜单“文件”中的“项目—>添加新项”命令;或在解决方案资源管理器的“源文件”处右击鼠标,在弹出菜单中选择“添加 —> 新建项”,或者按下Ctrl+Shift+A组合键,如图2-6所示:

图2-6 添加新的C源程序文件

2)。 选定“C++ 文件(cpp)”项,在“文件”一栏中填入新添加的源文件名,如“hello.c”,在“位置”一栏中指定文件路径,一般选择存放在项目文件夹内可以不必输入,单击“添加”按钮,如图2-7所示。

注意:填入C源文件名一定要加上扩展名“.c”,否则系统会为文件添加默认的C++源文件扩展名自动变成“.cpp”,编译器会根据源文件的后缀来判断代码的种类。

图2-7 定义C源程序文件

3). 在文件编辑区输入源程序,如图2-8所示。

图2-8 输入C源程序

2.2.4 编译、连接和运行

系统提供了一种快捷的方式,可以一键完成编译、链接、运行,有三种方法

1) 点击“生成”工具栏的“开始执行(不调试)”图标;

2) 点击菜单栏中的“调试”按钮,选择“开始执行(不调试)”命令;

3) 按下Ctrl+F5组合键

系统首先进行编译过程,输出窗口将显示编译过程中检查出的错误或警告信息,在错误信息处双击鼠标左键或单击鼠标右键再选“转到”命令,可以使输入焦点跳转到引起错误的源代码处大致位置以进行修改。如图2-9所示:输出窗口中提示“error C2143: 语法错误 : 缺少分号”,同时在程序窗口标注出出错语句的大致位置。在“printf("hello

everybody!n")”的后面加一个分号后再编译一次即可。

如果程序没有语法错误,自动开始链接和运行,此时将会出现一个新的用户窗口,按照程序输入要求正确输入数据后,程序即正确执行,用户窗口显示运行的结果。

图2-9 编译C源程序

程序编译完成后生成的目标文件(.obj)、链接后生成可执行文件(.exe)存放在当前项目所在文件夹的“Debug”子文件夹中。编译完成后,打开项目目录(d:c languagemyproject-1 Debug)文件夹,会看到的经过编译产生的目标文件(Object File);最终生成的可执行文件。

2.3. 编辑C语言应用程序

2.3.1 打开项目/解决方案

选择主菜单“文件—>打开—>项目/解决方案”命令,在“打开项目”对话框内找到并选择要打开的项目/解决方案文件“”或“”,单击“确定”按钮,打开后,在左侧的“解决方案资源管理器”窗口,打开要编辑的C源程序进行编辑和修改,如图2-10所示。

图2-10 打开项目/解决方案

2.3.2. 在项目中添加已经存在的文件

选择主菜单“项目—>添加现有项”命令,在“打开项目”对话框内找到已经存在的C源程序文件,单击“确定”按钮完成添加,如图2-10所示。

2.3.3 在解决方案中添加新项目

如果要在一个解决方案中添加新项目,方法是选中在解决方案管理器中选中解决方案,点击鼠标右键激活快捷菜单,选“添加->新建项目”命令,如图2-11所示。然后在参考2.2.2节的内容在解决方案中新增一个项目

图2-11 添加新项目

2.3.4 设置启动项目

如果一个解决方案中有多个项目,只能有一个是当前活动项目,该项目当前正在编译运行,需要设置成为启动项目。方法是选中该项目,点击鼠标右键激活快捷菜单,选“设为启动项”命令,如图2-12所示。

图2-12 设置启动项目

2.4 调试程序

在编写较长的程序时,能够一次成功决非易事。对于程序中的错误,系统提供了易用且有效的调试手段。调试是一个程序员最基本的技能,这里我们介绍一些初级的调试方法

2.4.1 调试程序环境介绍

1)进入调试程序环境

选择主菜单“调试”中提供的调试命令;或者在菜单区空白处单击鼠标右键,在弹出的菜单中选中“调试”项激活调试工具条,选择需要的调试命令,系统将会进入调试程序界面,同时提供多种窗口监视程序运行,参考图2-13。

图2-13 调试程序界面

2)监视窗口

单击底部的“监视1”按钮,或把光标移动到“监视1”按钮上,下方出现一个观察窗口。

系统支持查看程序运行到当前指令语句时变量、表达式和内存的值。所有这些观察都必须是在中断的情况下进行。

在该窗口中输入变量或者表达式,就可以观察变量或者表达式的值。注意:表达式不能有副作用,例如“++”和“--”运算符绝对禁止用于表达式中,因为这两个运算符将修改变量的值,导致程序的逻辑被破坏。

还可以采用在调试状态下单击右键,选择“快速监视”命令,弹出一个对话框,来观看变量和计算表达式的值。

3)“局部变量”窗口

单击底部的“局部变量”按钮,或把光标移动到“局部变量”按钮上,下方出现一个观察窗口。,显示当前窗口所有可见的变量的值。特别是当前指令语句涉及的变量值,以红色显示。

4)“自动窗口”

单击底部的“自动窗口”按钮,或把光标移动到“局部变量”按钮上,下方出现一个观察窗口。显示所有当前执行上下文中可见的变量的值。特别是当前指令语句涉及的变量值,以红色显示。

2.4.2 单步执行

系统提供了多种单步执行调试程序的方法:可以通过单击“调试”工具条上的按钮或按快捷键的方式选择多种单步执行命令。表2-1中列出了常用的调试命令。

表2-1 常用调试命令一览表

菜单命令

启动/继续调试

逐过程

逐语句

跳出

设置/取消 断点

停止调试

工具条按钮 快捷键

F5

F10

F11

Shift +F11

F9

说 明

继续运行,直到断点处中断。

单步,如果涉及到子函数,不进入子函数内部

单步,如果涉及到子函数,进入子函数内部

运行至当前函数的末尾。跳到上一级主调函数

设置/取消 断点

Shift+F5

结束程序调试,返回程序编辑环境

1). 单步跟踪进入子函数(逐语句,F11),每按一次F11快捷键或按“调试”工具条上按钮,程序执行一条无法再进行分解的程序行,如果涉及子函数,进入子函数内部。

2). 单步跟踪跳过子函数(逐过程,F10),每按一次F10快捷键或按“调试”工具条上按钮,程序执行一行;监视窗口可以显示变量名及其当前值,在单步执行的过程中,可以在监视窗口中加入所需观察的变量,辅助加以进行监视,随时了解变量当前的情况,如果涉及子函数,不进入子函数内部。

3). 单步跟踪跳出子函数(跳出,Shift+F11),按Shift+F11组合键或按“调试”工具条上按钮后,程序运行至当前函数的末尾,然后从当前子函数跳到上一级主调函数。

4). 悬停鼠标查看表达式值

最简单观看变量的值的方法,把光标移动到这个变量上,停留一会就可以看到变量

2.4.3 设置断点调试程序

对于较大规模程序的跟踪,断点是最常用的技巧。断点是调试器设置的一个代码位置,当程序运行到断点时,程序中断执行,回到调试器。调试时只有设置了断点并使程序回到调试器,才能对程序进行在线调试。参考图2-14。

图2-14 设置断点调试程序

1) .设置断点的方法

可以通过下述方法设置一个断点。首先把光标移动到需要设置断点的代码行上,然后按F9快捷键,断点处所在的程序行的左侧会出现一个红色圆点。还可以把光标移动到需要设置断点的代码行的左边框栏上然后点击鼠标左键,断点处所在的程序行的左侧也会出现一个红色圆点;或者用右键菜单的“插入断点命令,参考图2-14和表2-1。

系统提供如下多种类型的断点:

条件断点:可以为断点设置一个条件,这样的断点称为条件断点。对于新加的断点,可以单击“条件”按钮,为断点设置一个表达式。当这个表达式的值发生改变时,程序就被中断。

数据断点:数据断点只能在“断点”对话框中设置。在编辑框中输入一个表达式,当这个表达式的值发生变化时,到达数据断点。一般情况下,这个表达式应该由运算符和全局变量构成。

2) 程序运行到断点

选择主菜单“调试”中的“启动调试”或按F10快捷键,程序执行到第一个断点处后将暂停执行,该断点处所在的程序行的左侧红色圆点上添加一个黄色箭头,此时,用户可方便地进行变量观察。继续执行该命令,程序运行到下一个相邻的断点。参考图2-14。

3). 取消断点

只需在代码处再次按F9。或把光标移动到需要取消断点的代码行的左边框栏上然后点击鼠标左键,也可以打开“断点”对话框后,按照界面提示去掉断点。

4). 结束程序调试,返回程序编辑环境

选择主菜单“调试”中的“停止调试”命令,或者单击“调试”工具条上按钮,或者按Shift+F5组合键,都可结束程序调试,返回程序编辑环境。

2.5 修改用户界面设置

Visual C++ 2010 默认安装完成后:我们为了在执行程序时出现“结果窗口”,需要进行如下设置:

点击菜单栏上的“视图”命令,在下拉菜单中选择“工具栏”命令,在级联菜单中选择“生成”选项。

图2-15 添加生成工具栏

此时将在工具栏中出现“生成”工具栏,可拖动该工具栏上的“移动条”改变其位置。

图2-16 显示生成工具栏

用鼠标指向“生成”工具栏的右下角的“箭头”图标,出现“生成工具栏选项”的提示。点击该“箭头”图标,出现“添加或删除按钮”命令项,在级联菜单中选择“自定义”选项。

图2-17 自定义生成工具栏

出现“自定义”对话框窗口,在命令选项卡中点击“添加命令”按钮。出现“添加命令”对话框。

图2-18 添加命令到生成工具栏

选择“调试”类别;“开始执行(不调试)”命令,点击“确定”按钮。在“生成”工具栏中会出现“开始执行(不调试)”命令按钮。

在运行程序时,点击该按钮,程序执行后会出现执行结果窗口。

2.6. 有关联机帮助

Visual C++ 2010提供了详细的帮助信息,用户通过选择“帮助”菜单下的“帮助目录”命令就可以进入帮助系统。在源文件编辑器中把光标定位在一个需要查询的单词处,然后按F1键也可以进入Visual C++ 2010的帮助系统。

此外,在编程的过程中,将光标移至函数名的上面,系统自动提供该函数的原型说明。


本文标签: 程序 断点 文件 项目 调试