1.4 Visual C++ 6.0的工具组件

本节将简要介绍Visual C++ 6.0所包含的一些重要工具。在介绍这些重要工具之前,有必要先了解一下Visual C++中工程的基本概念。工程也称为项目,其实际上就是一些相关源文件的集合,而这些源文件经过编译和链接之后被创建成一个可执行的基于Windows的应用程序或动态链接库。每一个工程也取决于工程子目录外面的许多文件,如include文件等。

1.4.1 C/C++编译器

C和C++都是高级语言,C语言主要用于面向过程的程序设计,而C++是C的超集,即C是C++的子集。C++包含了C原有的语法规则,同时增加了面向对象和泛型编程的思想,支持类的定义、对象的创建和通用算法的使用。Visual C++ 6.0的编译器可以编译C源代码和C++源代码。

什么是“编译”呢?高级语言要被计算机理解并执行,都要经过一个“翻译过程”。在编程语言中,这种“翻译过程”有两种:编译型和解释型。编译型语言是将该语言一次性编译成另外一种语言或机器语言,如C/C++;解释型语言是在运行时逐行或逐段解释成其他语言或机器语言,如HTML。编译器通过查看资源代码文件扩展名来决定语言。针对扩展名为.c的资源文件,则使用处理C源代码的编译功能,当然,在标准C++中,C作为C++的一部分,也可以看作是C++源代码。针对扩展名为.cpp的资源文件,则使用处理C++源代码的编译功能。但无论是C源代码还是C++源代码,其最后都将生成OBJ目标文件。编译器符合所有的ANSI标准,包括有关C++库工作组的最近建议,同时编译器还有额外的Microsoft扩充。

一般情况下,Visual C++ 6.0中的C/C++编译器不需要用户自己打开。当用户运行应用程序时,该编译器将启动编译功能对其中的C语言或C++语言的源程序进行编译。

1.4.2 资源编辑器和资源编译器

在Visual C++ 6.0中所有诸如对话框、菜单等都称为资源。资源由资源编辑器进行管理。资源编辑器存在于Workspace工作区中,它提供一个所见即所得的菜单编辑器和一个强大的对话框图形编辑器。另外,它还包含编辑图标(Icon)、位图(BMP)和字符串(String)等资源的工具,如图1-5所示。

图1-5 资源编辑器

每一个工程通常有一个文本格式的资源脚本(RC)文件来描述工程的菜单、对话框、字符串等资源。RC文件也可以通过#include语句(包含库文件语句)从其他子目录中引进资源。这些资源包括位图、图标以及所有Visual C++程序共用的资源。用户可以通过直接编辑文本形式的RC文件来编辑各种资源。但是一般来说,初学者使用文本形式非常容易出错,推荐使用资源编辑器来编辑资源。

Visual C++ 6.0的资源编译器从资源编辑器中读取ASCII资源脚本文件,并且向链接程序提供一个二进制RES文件。

说明

读者不要将资源编辑器与资源编译器混同。前者用于管理和编辑Visual C++中的资源,后者则用于生成一个二进制文件。这与源代码编辑器和编译器的区别是类似的。

1.4.3 链接器和调试器

链接器从C/C++编译器和资源编译器产生的目标文件OBJ文件和资源文件RES文件中读取信息,连同Windows运行库和MFC库,访问LIB文件,最后生成工程的EXE文件。链接时间的长短取决于对源文件改动的大小。

调试器是在一个工程的调试过程中用到的工具。它可以提供很多帮助,诸如查看指定变量的值、对象及内部成员情况、内存分配情况等。在Visual C++ 6.0中,通过单击【Build】|【Debug】菜单项进入调试器。在调试状态下的集成开发环境将在菜单栏中新增【Debug】菜单,如图1-6所示。同时,在窗口下方出现查看变量、对象情况的窗口,如图1-7所示。

图1-6 【Debug】菜单

图1-7 查看窗口

1.4.4 应用程序向导

应用程序向导AppWizard是一个代码生成器,其能够创建一个最简单的应用程序框架。一般来说,AppWizard是Visual C++ 6.0进行应用程序开发的主要工具之一,该应用程序框架的结构和内容取决于在AppWizard向导中所做的选择,AppWizard可以生成一个带有类名、源代码文件名的Windows应用程序的框架。此外,AppWizard还为应用程序创建定制工程和工作区文件。常用的MFC应用程序向导(MFC AppWizard)如图1-8所示。

图1-8 应用程序向导(MFC AppWizard)对话框

同时,Microsoft公司已经公开了AppWizard生成工程的基于宏的系统。因此,用户可根据开发需要定制自己的应用程序向导AppWizard。本章的第一个应用程序Hello World将使用到AppWizard工具。

提示

Visual C++ 6.0中,应用程序向导AppWizard的使用非常频繁,尤其是MFC AppWizard。几乎所有的Windows应用程序都是通过其构建最初的程序框架的。

1.4.5 类向导

与应用程序向导AppWizard一样,类向导ClassWizard也是一个非常重要的工具。用户可以在【View】菜单中访问它,也可以在编辑区窗口通过右击来选择它。如图1-9所示,为工程“Hello World”的【MFC ClassWizard】对话框。

图1-9 【MFC ClassWizard】对话框

ClassWizard可以创建一个新类、新的虚拟函数或者一个新的消息处理函数,并且帮开发者写出它们的原型、函数体,完成消息映射的过程。而这些只是它强大功能中的一小部分,对于ClassWizard的其他重要的用途,在后续章节中将会详细介绍。

说明

Visual C++ 6.0中所有事件的触发、消息的传递都是通过类和对象来实现的。因此ClassWizard常用于添加成员变量、消息处理函数。这些内容将在后续章节中详细讲解。

1.4.6 资源浏览器

在实际使用中,Visual C++ 6.0提供了一个资源浏览器(Source Browser)供用户浏览资源。资源浏览器可以使用户快速地查看并编辑应用程序中出现的所有类、成员函数、变量等。一般来说,浏览器可以查看如下内容。

● 查看定义和引用:对选定的任何函数、变量、类型、宏或者类,可以查看它是否定义以及在哪个文件中定义并使用。

● 查看文件大纲:对一个选定的文件,可以查看在该文件中有哪些类、函数和数据成员被定义或使用。

● 查看派生类和成员或者基类和成员:对于一个选定的类,可以以分级结构方式看到派生类或基类以及其成员函数。

● 查看调用图形或调用程序图形:对于一个选定的函数,可以以图形的方式看到其调用的函数及调用它的函数。

【范例1-1】有一个名为Hello World的工程,现在要查看该工程的CHelloWorldView类的基类及其成员函数的情况,就可以通过资源浏览器来实现,其查看步骤如下。

1 选定工作台窗口的CHelloWorldView类,如图1-10所示。

图1-10 选定目标类

2 选择【Tools】|【Source Browser】菜单项,打开【Source Browser】对话框。如果省略上一步在WorkSpace中选定CHelloWorldView类的过程,也可以在对话框【Source Browser】的【Identifier】文本框中直接输入类的名字,如图1-11所示。

图1-11 打开资源浏览器

3 如果要查看该类的基类及其成员情况,可以选定【Base Classes and Members】项,单击【OK】按钮进行查看。完成上述三个步骤后,工程Hello World的CHelloWorldView类在资源浏览器中的显示结果如图1-12所示。

图1-12 显示Base Classes and Members目录

【范例解析】该范例通过资源浏览器查看类的成员函数和成员变量,读者可以通过上述步骤查看工程中任意类的相关信息。在实际应用中,往往一个类中包含大量的成员,资源浏览器为用户快速检索该类的基类和成员提供了方便。

其他几种查看方式同上几步操作基本类似,读者可以动手实际操作一下。如果工程没有指定创建浏览器数据库,可以重新改变设置。单击【Project】|【Settings】菜单项,在弹出的对话框中,选择【C/C++】选项卡。在【C/C++】选项卡中选择【Generate Browse Info】选项,如图1-13所示。

图1-13 设置重写浏览器数据库

设置完成后,在【Browse Info】页面上单击【Build Browse Info File】选项,然后重新编译程序即可。如果在任何源代码文件中重新编排了代码行,Visual C++ 6.0在重新建立该工程时会重写浏览器数据库,但这将增加连接的时间。

说明

【Project】菜单下的【Setting】对话框用于对Visual C++的集成环境的参数进行设置,在后续章节中还将具体讲解。