1.2 Visual C++.NET环境
Microsoft Visual Studio 2008是一个集成开发工具,其中包含了Visual Basic、Visual C++和Visual C#的开发组件。在集成开发环境(Integrated Develop Environment,IDE)中集成了编辑器、编译器、调试器等多个工具,使得在整个开发环境下能够进行创建、编译、调试和优化应用程序。
1.2.1 窗口元素
当启动Visual Studio 2008后,将显示如图1.4所示的启动界面。默认情况下,开发环境的窗口中包含菜单栏、工具栏、解决方案资源管理器、起始页、属性窗口、输出窗口等几个部分。单击各个窗口上的按钮可以自动隐藏窗口,而当光标移动到窗口标签上时,将自动弹出该窗口。
图1.4 Visual Studio 2008启动界面
1. 菜单栏
默认情况下,开发环境窗口中包含有“文件”、“编辑”、“视图”、“工具”、“测试”、“窗口”及“帮助”菜单选项。当打开或新建一个项目后,菜单栏中会增加“项目”、“生成”及“调试”菜单选项。
● “文件”菜单包含了用于项目、文件的常用命令项,如新建、打开、保存等,以及打印和打印预览的菜单命令。
● “编辑”菜单提供了文档内容的常用操作,如剪切、复制、查找、替换等。其中还包含了一个“书签”菜单项,提供了类似浏览器的书签功能。
● “视图”菜单中主要提供了管理开发环境中各个窗口的菜单选项,可以根据实际需要选择常用的窗口及工具条。
● “项目”菜单中列出了开发项目的一些常用选项,如添加新类、添加资源、为项目添加文件、设置项目的属性等。
● “生成”菜单主要提供了生成项目的相关命令,这些菜单选项分别可以用于生产整个项目及项目中的单个文件等。
● “调试”菜单提供了运行、调试程序的菜单命令。其中主要包含了一些常用的调试命令及管理调试窗口的菜单命令等。
● “工具”菜单中提供了许多执行外部工具的菜单命令,以及定制开发环境和设置整个开发环境的菜单命令。
● “测试”菜单中主要用于创建单元测试的菜单命令,这些命令可以创建测试项目,并执行单元测试及查看测试的输出结果等。
● “帮助”菜单中提供了大量的MSDN帮助信息。其中包含了使用Visual Studio开发环境的大量项目开发技术及编程资料。
2. 工具栏
工具栏中列出了常用的工具按钮,而当打开不同的编辑器时,会出现相应的工具条。用户可以在工具栏上单击鼠标右键,在弹出一个如图1.5所示的工具栏菜单中,通过标记“勾号”的来选择需要显示的工具条。
图1.5 工具栏快捷菜单
默认情况下,工具栏上含有标准工具条和生成工具条。其中,标准工具条中包含一些常用的工具按钮及调试、窗口的管理工具按钮;生成工具条仅包含了生成项目的工具按钮。
另外,在Visual C++.NET开发环境中的工具栏具有“浮动”与“停泊”功能。如果将工具条拖动到窗口的中央处,则工具栏成为“浮动”的工具窗口,窗口的标题就是该工具栏的名称。
当然,浮动和停泊两种状态可以进行切换。在“浮动”的工具窗口标题栏处双击鼠标左键或将其拖放到主窗口的四周,都能使其停泊在相应的位置处。在“停泊”工具栏的非按钮区域双击鼠标左键,可切换成“浮动”的工具窗口。
3. 解决方案资源管理器
解决方案资源管理器提供项目及其文件的有组织的视图,在开发应用程序时,该视图可以用来帮助管理解决方案中的项目和文件。其中的所有文件以层次关系被包含项目名下,并根据文件类型被划分为多个分组。其中,头文件项下包含了项目中所有的头文件;源文件项中包含项目中所有的源文件;资源项下是在项目中使用到的资源文件,而其他与项目无关的文件也被单独列在项目名下,如图1.6所示。
在解决方案资源管理器中,选中一个项目并单击鼠标右键,弹出如图1.7所示的快捷菜单。其中,“生成”和“重新生成”菜单命令将编译整个项目,“添加”菜单命令将在项目中新建一个文件或从外部添加文件,而选择“属性”菜单命令后将弹出该项目的属性设置,其中包括项目的设置、编译、链接信息等。
另外,在解决方案资源管理器中双击某个文件后,开发环境将以支持的编辑器自动打开该文件。用鼠标右键单击该文件,将弹出一个快捷菜单,选择“从项目中排除”菜单命令后将从项目中去除该文件,而如果选择“移除”菜单命令,则会弹出一个提示对话框并询问是否需要从磁盘上删除该文件,若单击“删除”按钮则从项目中去除该文件并删除磁盘上的文件。
图1.6 解决方案资源管理器
图1.7 项目快捷菜单
4. 类视图、资源视图
在Visual C++.NET开发环境中包含了两个重要的视图:类视图和资源视图,它们分别用来显示项目中所有的类、资源信息等,如图1.8和图1.9所示。
图1.8 类视图
图1.9 资源视图
类视图用于显示正在开发的应用程序中定义、引用或调用的符号。其中包含两个窗口格:上面部分是对象窗格,而下面部分是成员窗格。对象窗格包含一个可以展开的符号树,其顶级节点表示项目,而每个节点用于标识项目中使用的分层结构,如命名空间、类型、接口、枚举、类等。成员窗格中列出了属性、方法、事件、变量、常量和包含的其他项等。
资源视图显示项目中包含的资源文件。展开顶部文件夹将显示资源文件(*.rc)中所有资源的类型,展开每种资源类型将显示该类型的各个资源。这些资源是应用程序窗口元素的一部分,如菜单栏、工具栏、对话框等。每个资源都具有相应的资源类型以及对应的资源文件类型,并且都含有一个资源标识符,如IDR_MAINFRAME。双击某个资源的标识符后,开发环境将使用资源编辑器自动打开这些资源,并可以修改、编辑这些资源。
5. 代码编辑窗口
当打开一个文件后,开发环境将自动打开代码编辑窗口以供编辑代码,如图1.10所示。代码编辑窗口中的文件标签显示当前打开的文件名,并且根据打开文件类型自动进行语法高亮显示,如以红色显示注释内容、蓝色显示关键字等。
当在代码编辑窗口中输入代码时,它会根据当前的输入自动弹出提示框。这些提示信息可以是类中的成员函数或成员变量、全局函数、函数声明等,用户可以在提示框中选择适合的内容以自动补全代码内容。
6. 工具箱
工具箱是一个浮动的树控件,它与Windows资源管理器的工作方式非常类似,但没有网格或连接线,如图1.11所示。然而工具箱中的控件并非一成不变,当打开其他编辑器或项目类型时,会更改当前工具箱中的选项卡,以及在选项卡中显示的项。例如,使用Visual C++.NET创建一个基于CLR的Windows窗体项目时,工具箱中的可用控件数明显增多。
图1.10 代码编辑窗口
工具箱中的项可以是:.NET框架类库、COM组件、用于Windows窗体与Web窗体的控件、HTML元素、XML命名空间中的组件等。当工具箱被关闭或被隐藏后,可以通过选择“视图”→“工具箱”菜单命令来重新显示工具箱窗口。
图1.11 工具箱及控件
7. 属性窗口
属性窗口可以用来查看和更改位于编辑器和设计器中的选定对象的属性及事件,也可以编辑和查看文件、项目和解决方案的属性信息,如图1.12所示。
在属性窗口中,对象名列出当前选定的一个或多个对象,属性窗口会列出这些对象的属性信息;排序按钮和分别指定按类别和字母顺序对选定对象的属性和事件进行排序;按钮将列出该对象所有的事件,如控件产生的消息、菜单命令等;按钮将列出所有的Windows消息。当在类视图中选中某个类后,可以在属性窗口中为该类添加消息响应函数。
图1.12 属性窗口
1.2.2 开发组件
Visual C++.NET开发环境中集成了源代码编辑器、资源编辑器、C/C++编译器、资源编译器、链接器、调试器等几个主要的组件,并且为了使应用程序的开发更方便,集成环境中还提供了许多的向导来简化一系列的操作,这几部分的关系如图1.13所示。
图1.13 Visual C++.NET中的组件
1. 源代码编辑器
Visual C++.NET中集成了一个完善的源代码编辑器,它提供了语法着色、自动缩进等功能,以及快捷键、打印功能等。源代码编辑器根据读取源文件的类型,自动地判断代码的语法特征,并以不同的颜色显示代码中关键字、注释等。
2. 资源编辑器
Visual C++.NET中提供了一个适合多种类型的资源编辑器。在资源编辑器中,可以打开、创建和删除常用的资源,如快捷键、菜单、工具栏、对话框、图标、位图等。所有资源文件都是以一个文本格式的资源脚本文件(*.rc)描述的,文件中描述了各个资源的位置、样式等信息。
3. C/C++编译器
Visual C++能够编译C源代码和C++源代码,编译器通过识别源代码文件的扩展名来确定源文件使用的语言,编译器最终将所有源文件编译成OBJ文件(*.obj),最后由链接器链接成可执行文件。
在编译过程中,可以通过指定诸多的编译开关选项来设置不同的编译方式,这些选项可以选择主菜单“项目”菜单项下的“属性”子菜单命令,在弹出的“属性页”对话框中的“配置属性”节点下的“C/C++”标签选项内指定。具体的设置方法将在后面的内容中介绍。
4. 资源编译器
Visual C++.NET资源编译器能够将读取资源编辑器管理的资源脚本文件(*.rc),并最终编译成一个二进制的RES资源文件(*.res),该文件最后由链接器添加到可执行文件中。
5. 链接器
链接器将由C/C++编译器和资源编译器生成的OBJ和RES文件链接成最终的可执行文件,并且,它也将源程序中的MFC代码、运行库代码和Windows代码映射到相应的MFC库和Windows运行库文件中。
6. 调试器
Visual Studio.NET提供了一个集成的调试环境,它包含了Visual C++的调试器,并增加了许多的新特性,如跨语言调试、远程调试等。另外,Visual C++.NET包含了一种称做“编辑并继续”的特性,该特性使得在调试应用程序的过程中,可以修改应用程序并能够在新代码的基础上继续进行调试。为了使用该特性,在调试器中编辑任何代码,然后单击调试工具条上的按钮,或者选择“调试”→“重新启动”菜单命令后,Visual C++.NET则将所做的修改进行编译并重新启动调试器。