1第1章VisualC++6.0开发环境1.1开发环境概述1.2开发环境的菜单功能1.3开发环境的工具栏1.4项目和项目工作区1.5资源1.6一个控制台应用程序1.7程序调试上机训练21.1开发环境概述界面由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口以及状态栏等组成,如图。图1.2VisualC++6.0开发环境工具栏菜单栏项目工作区窗口输出窗口文档窗口输出窗口标签标题栏状态栏31.3开发环境的工具栏1.3.1工具栏概述标准工具栏图1.12标准工具栏NewTextFileCutPasteRedoOutputFindinFilesSearchOpenSaveAllCopyUndoWorkspaceWindowListFind41.3开发环境的工具栏类向导工具栏小型编连工具栏图1.13WizardBarClassFilterMembersActions图1.14BuildMiniBarCompileStopBuildGoBuildExecuteAdd/Removebreakpoints51.4项目和项目工作区还有相应的Debug或Release、Res等子文件夹。若创建的单文档应用程序项目名是Ex_Sdi,则各文件的布局如图。VC应用程序向导创建项目时,系统会自动为项目创建Win32Debug的运行程序,并使用相应的缺省配置。和Win32Release版本的区别在于:Debug版本的运行程序有相应的调试信息码,Release版本的运行程序没有,但Release版本的运行程序经过代码的优化,其程序的运行速度被最大加速。注意:在开发环境中,VC是通过左边的项目工作区窗口来对项目进行各种管理。项目工作区窗口包含三个页面,是ClassView页、ResourceView页和FileView页。图1.18项目文件的布局Ex_Sdi文件夹Debug或Release文件夹Res文件夹类文件.cpp,.h资源文件Ex_Sdi.rc项目及项目工作区文件其他文件编连过程产生的文件运行文件Ex_Sdi.exe图标文件Ex_Sdi.ico等工具栏资源Toolbar.bmp其他资源Ex_Sdi.rc2等61.4项目和项目工作区1.4.2ClassView用以显示项目中的所有的类信息。假设打开的项目名为Ex_Sdi,单击项目区窗口底部的ClassView,则显示出“Ex_Sdiclasses”的树状结点,在它的前面是一个图标和一个套在方框中的符号“+”,单击符号“+”或双击图标,Ex_Sdi中的所有类名将被显示,如CMainFrame、CEx_SdiApp、CEx_SdiDoc、CEx_SdiView等(如图所示)。图1.19ClassView图1.20ResourceView图1.21FileView71.4项目和项目工作区1.4.3ResourceView包含了项目中所有资源的层次列表。每一种资源都有自己使用的图标。1.4.4FileViewFileView可将项目中的所有文件分类显示,如图。每一类文件在FileView页面中都有自己的目录项(节点)。可以在目录项中移动文件,还可以创建新的目录项以及将一些特殊类型的文件放在该目录项中。创建一个新目录项,可在添加目录项的地方右击,选择“NewFolder”,如图,输入目录项名称和相关的文件扩展名,单击[OK]。图1.22“NewFolder”对话框81.5资源1.5.1资源与资源标识资源的分类(1)快捷键列表(2)工具栏按钮(3)鼠标指针(4)对话框(5)HTML(6)图标(7)菜单(8)字符串列表(9)版本信息标识符标识符的命名规则:(1)在标识符名称中允许使用字母a~z、A~Z、0~9以及下划线。(2)标识符名称不区分大小写字母。(3)不能以数字开头,如8BIT是不合法的标识符名。(4)字符个数不得超过247个。91.5资源1.5.2资源基本操作创建资源(1)从“Insert”菜单选取“Resource”;或用快捷键Ctrl+R打开对话框,如图。[New]用来创建一个由ResourceType列表中指定类型的新资源,[Custom]按钮用来创建ResourceType列表中没有的新类型的资源,[Import]按钮用于将外部已有的位图、图标、光标或其他定制的资源添加到当前应用程序中。(2)从ResourceType列表中选择一种资源类型,而后按[New]按钮。(3)在项目工作区窗口的ResourceView页面中,看到了刚才选中的资源的缺省标识符,而且相应的资源编辑器自动打开。图1.23“InsertResource”对话框101.5资源打开资源如果需要对已有资源进行查看或修改,可以首先切换到项目工作区窗口的ResourceView标签页,然后选中要打开的资源,双击鼠标左键或者按Enter键,这时相应的资源编辑器也会相应自动打开。删除、复制资源如果删除一个已有的资源,可以首先切换到项目工作区窗口的ResourceView标签页,然后选中要打开的资源,按Del键或者利用Edit菜单下的Delete菜单项可实现删除。复制资源的过程与删除类似,选中要打开的资源,按住Ctrl键不放,并拖动鼠标左键或利用Edit菜单中的Copy和Paste菜单命令进行操作,它同其他软件的复制过程相同。保存资源当设计或修改好一个资源后,用File菜单的Save菜单命令或利用快捷键Ctrl+S将其保存在当前资源文件中。111.5资源1.5.3资源文件的管理资源文件一经创建,其中所包含的资源也就随之而定,与资源相对应的标识符也被保存在Resource.h头文件中。一般,在一个资源文件.RC中所保存的所有资源已经满足的需要了,尽管如此,VC仍然允许用多个文件来存放资源。用View菜单中的ResourceIncludes菜单命令打开“ResourceIncludes”对话框(如图1.24所示)时,可以看到Compile-timedirectives编辑框中已经含有#includeres\Ex_Sdi.rc2。1.5.4资源编辑器所有Windows资源都可以用VC提供的资源编辑器来编辑。图1.24“ResourceIncludes”对话框121.6一个控制台应用程序1.6.1用AppWizard创建用AppWizard创建一个控制台应用程序可按下列步骤进行:(1)选择“File”“New”菜单命令,显示出“New”对话框。(2)选择Projects标签,选中Win32ConsoleApplication项。(3)在ProjectName框中键入控制台应用程序项目名称。第一次使用时最好确定该项目所在的文件夹以便于源文件的管理,既可在Location下的编辑框中直接键入文件夹名称,也可单击Browse按钮择一个已有的文件夹,如图。图1.25在“New”对话框中建立Ex_Hello控制台应用程序131.6一个控制台应用程序(4)单击[OK]。如图。选中Asimpleapplication项。(5)单击[Finish],如图,单击[OK]按钮系统将自动创建此应用程序。图1.26选择控制台应用程序类型图1.27Ex_Hello信息对话框141.6一个控制台应用程序1.6.2理解程序框架在项目工作区窗口中只能看到ClassView和FileView标签,如图。切换到FileView页面,可以看到AppWizard为生成了Ex_Hello.cpp、Stdafx.cpp、Stdafx.h以及ReadMe.txt四个文件。Stdafx.cpp是一个只有一条语句的空文件,Stdafx.h是VC为每个项目配置的用来预编译的文件;ReadMe.txt是VC为每个项目配置的说明文件,包括对AppWizard产生文件类型的说明以及操作的一些技巧;Ex_Hello.cpp是AppWizard产生的“真正”具有实际意义的程序源代码文件,几乎所有的代码都是添加在这个文件中的。图1.28Ex_Hello项目工作区内容151.6一个控制台应用程序1.6.3添加程序代码(1)单击项目工作区窗口的ClassView标签项,将显示Ex_Hello类信息。(2)单击各目录项前面的“+”号,将所有目录项展开。(3)双击main函数名,在文档窗口中显示出main函数体所在的源文件Ex_Hello.cpp,且文本光标已移至此函数名的前面。(4)键入下列代码:...#includeiostream.h//输入输出操作的头文件intmain(intargc,char*argv[]){coutHelloworld!\n;return0;}(5)用SaveAll命令项或标准工具栏的SaveAll按钮将所有文件保存。161.6一个控制台应用程序1.6.4编译运行打开Build菜单,选用BuildEx_Hello.exe菜单项或按快捷键F7,系统对Ex_Hello进行编译、连接,同时在输出窗口中在线地显示出编译的内容,当出现Ex_Hello.exe-0error(s),0warning(s)字样时,表示Ex_Hello.exe可执行文件已经正确无误地生成了。在Build菜单中选取ExecuteEx_Hello.exe命令或按快捷键Ctrl+F5,就可以运行刚刚生成的Ex_Hello.exe,如图。在Ex_Hello窗口中,“Pressanykeytocontinue”是系统自动加上去的。图1.29Ex_Hello运行结果171.7程序调试1.7.1修正语法错误调试最初的任务主要是修正一些语法错误,这些错误包括:(1)未定义或不合法的标识符,如函数名、变量名和类名等。(2)数据类型或参数类型及个数不匹配。上述错误在编译后,会在Output窗口中列出所有错误项。若将光标移到Output窗口中的错误编号上,按F1键可启动MSDN并显示出错误的内容,从而帮助用户理解错误产生的原因。为了能使快速定位到错误产生的源代码位置,提供下列一些方法:(1)在Output窗口中双击某个错误,或将光标移到该错误处按Enter键,则该错误被亮显,状态栏上显示出错误内容,并定位到相应的代码行中,且该代码行最前面有个蓝色箭头标志。(2)按F4键可显示下一错误,并定位到相应的源代码行。(3)在Output窗口中的某个错误项上,右击鼠标,在弹出的快捷菜单中选择“GoToError/Tag”命令。语法错误被修正后,编译时会出现类似“Ex_Hello.exe-0error(s),0warning(s)”的字样。并不是说,此项目完全没有错误,可能还有“异常”、“断言”等其他错误,而这些错误在编译时是不会显示出来的,只有当程序运行后才会出现。181.7程序调试1.7.2设置断点调试的断点可以有下列类型:(1)位置断点、(2)数据断点、(3)条件断点。快捷方式三种快捷方式可以设置位置断点:(1)按快捷键F9。(2)在Build工具栏上单击按钮。(3)在需要设置断点的位置右击,选择“Insert/RemoveBreakpoint”命令。图1.30设置的断点断点标志断点标志程序中断的位置191.7程序调试使用Breakpoints对话框(1)凡是可以使用的断点前均有选中标记(√)。若单击前面的复选框,则该断点被禁止。按钮[Remove]和[RemoveAll]清除当前选中的断点或全部断点。(2)在Location页面中,“BreakAt”文本框中可以输入断点的名称。单击[EditCode]可以查看断点位置处的源代码或目标代码。单击[Condition],可以输入程序运行中断所需要的表达式条件,从而设置一个条件断点。(3)在Data页面中,提供了一种设置数据断点的方法,如图。在Data页面的最上面编译框中,可以键入任何有效的C/C++表达式,它可以是赋值语句,可以是条件语句,可以是单独的一个变量名。在程序运行过程中,若变量的值有所改变,或者条件表达式变成真时,则程序在该断点处中断。图1.31“Breakpoints”对话框图1.32Data页面201.7程序调试1.7.3