您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > vc6.0开发环境和应用程序框架
第1章VC6.0开发环境和应用程序框架•编程语言要在某计算机系统下运行,必定要经过编译或解析成为机器语言,这样才能被计算机理解并执行。高级语言按照翻译方式可以分为两类:编译型和解释型。C++是一种编译型的高级语言,其过程严格按照6个步骤进行:语法分析、词法分析、语义分析、中间代码生成、优化代码和目标代码生成。VC6.0是当今主流的C/C++集成开发环境,除集编辑、编译和运行于一体外,还提供了丰富的控件、菜单和类定义自动处理功能。•本章涉及的知识点有:•VC6.0的安装过程和软件项目创建过程。•VC6.0简介:可以熟悉VC6.0的界面、各菜单项的功能,可以理解高级语言的编译原理过程,并学会掌握使用帮助来解决在开发软件过程中遇到的特殊问题。•MFC、Win32的创建:可以学会MFC、Win32程序的创建、编译和执行,并可以学会使用VC调试器在程序运行时对变量或函数调用顺序进行跟踪,提高程序排错的效率。•Microsoft应用程序框架:可以掌握MFC应用程序框架结构和消息传递相关知识,为本书第二篇和第三篇打下基础。•实践练习:可以学会创建自己的程序,并进行简单修改。1.1安装并测试VC6.0•本节首先介绍VC6.0的安装过程,然后简要介绍VC6.0的开发环境相关技术背景,最后使用VC6.0应用程序向导创建一个项目,以测试VC6.0是否安装成功。1.1.1VC6.0的安装•VC6.0的全称是:VisualC++6.0;它是美国Microsoft公司研发的基于Windows操作系统的C++集成开发环境。较早期程序设计的各个阶段都要用不同的软件来进行处理,如先用字处理软件编辑源程序,然后用链接程序进行函数、模块连接,再用编译程序进行编译,开发者必须在几种软件间来回切换操作。在这种开发条件下,软件研发是非常繁琐的,而且大多数浪费时间的繁琐手续对软件研发没有任何帮助。而集成开发环境是将这些繁琐工作流程集中在一个软件环境,通过这个软件环境来完成所有的软件研发步骤而无需切换不同的开发工具。•高级语言编程的学习,主要分为两个方面:语言理论和开发工具。VC6.0作为一个集成开发环境,是初学者学习的重点。本文所使用的全部实例是在WindowsXP操作系统和VC6.0开发环境下编译通过。读者未必都要使用WindowsXP操作系统,但安装一个VC6.0是必要的。1.1.2VC6.0开发环境•在前文已经成功安装了VC6.0集成开发环境,读者可以通过:开始\所有程序\MicrosoftVisualStudio6.0\MicrosoftVisualC++6.0启动VC6.0开发环境,也可以通过找到前文中安装VC6.0的子目录启动MSDEV.EXE执行文件来启动VC6.0开发环境。为了使用的方便,建议用户在桌面创建一个快捷方式。•启动VC6.0后,可以看到如图所示的界面,该界面是VC6.0的主界面,本文的所有编程例子将在这里进行。VC6.0主界面1.1.3VC6.0应用程序向导和项目创建•在本小节中,将学习如何使用VC6.0的应用程序向导,并用该向导来创建一个软件项目-但该软件不做任何事。•在软件开发过程中,人们很早就认识到应用程序的创建具有相似性和重复性,因此,如果能有一种功能,即自动化创建一类程序,则可以大大提高软件开发的效率和软件编程的入门门槛。因此应用程序向导应运而生。以下是使用VC6.0创建项目的过程:修改MFC的DLL使用类型测试项目运行界面1.2VC6.0简介•本小节主要介绍VC6.0集成开发环境的各个子功能,同时也将详细介绍VC6.0主界面菜单项的基本功能,最后介绍MSDN帮助的使用。1.2.1C/C++编译器•C和C++都是高级语言,C语言主要用于面向过程的程序设计,而C++是C的超集,即C是C++的子集。C++包含了原有的C的语法规则,同时增加了面向对象和泛型编程的思想,支持了类的定义、对象的创建和通用算法的使用。•高级语言要被计算机理解并执行,都要经过一个“翻译过程”,就如一个不懂英文的中国人要知道英国人说的话,他需要一个翻译,将英国人的语言翻译成为普通话才能听懂。在编程语言中,这种“翻译过程”有两种:编译型和解释型。编译型语言是将该语言一次性编译成另外一种语言或机器语言,如C/C++;解释型语言是在运行时逐行或逐段解释成其他语言或机器语言,如HTML。1.2.2编辑器•打开1.1节创建的“test”项目,单击“FileView”选项卡,然后展开“testfiles”中的“SourceFiles”文件夹,双击打开“testView.cpp”源文件。如图所示,该图所示是“test”项目的工作区和代码编辑区。编辑器窗口1.2.3资源编辑器和资源符号•打开1.1节创建的“test”项目,单击“ResourceView”选项卡,然后展开“testresources”中的“Menu”文件夹,双击打开“IDR_MAINFRAME”资源项。如图1.21所示,该图所示是工作区的资源选项卡列表,在该选项卡中可以编辑菜单或对话框等资源。在图1.21中可以看到该项目的主窗口的菜单编辑界面。在这个界面中,用户可以自由地增加或删除菜单项。•在VC6.0中,源代码和资源是分别编译的,源代码编译成中间代码时,资源则编译成二进制文件,再通过连接程序将这两者连接起来运行。在互不相同的编译途径中,连接程序怎么将源代码和资源文件联系起来呢?它是通过一个“资源的标记”来联系,这个“资源的标记”就是资源符号。1.2.4连接器和调试器•VC6.0集成开发环境提供了很方便的功能之一:编辑、连接、编译和运行的一体化。原本连接器要做的工作就是将C/C++编译器产生的OBJ文件和资源编译器生成的RES文件连接起来。而现在这个步骤在VC6.0中对程序员来说是透明的。•调试器是VC6.0中查找程序错误的工具,该工具跟语法分析过程的语法错误提示不同。首先应该理解程序从开发到使用中可能会发生两种错误:语法错误和逻辑错误。•语法错误是在编译时就会发现的,而在程序出现语法错误时,编译程序不再向下进行,因此也不会产生执行文件,这种错误可以通过编译器提示和语法使用手册进行排除。直至通过编译为止。•逻辑错误是指通过了编译,并且生成了执行程序,在用户使用该软件中,出现的逻辑上或业务上的矛盾或错误。同时逻辑错误还包括运行时对数组等越界的访问的语义错误。如a[5]数组,用户指定一个i的值为8,并执行了a[i]访问,则此时的行为是未定义的。而在此之前,该程序确实是编译通过的,并生成了执行文件。1.2.5VC6.0的主要菜单项功能•VC6.0是集成开发环境,同时也是一种软件,因此也具备一般应用软件的操作界面。VC6.0的顶级菜单项有9个:•File:提供对源文件、资源文件和项目的新建、打开和保存等功能。•Edit:提供对源文件的编辑功能,包括复制粘贴等操作。•View:提供给用户查看调试窗口,或设置开发环境视图等功能。•Insert:提供新建类或插入文件到项目等功能。•Project:提供了对整个项目的设置功能。•Build:提供启动编译和运行等功能。•Tools:提供一些额外的工具以帮助开发者提高软件开发效率和质量。•Windows:提供窗口显示和切换功能。•Help:提供帮助信息。1.2.6项目和解决方案•VC6.0支持同一个解决方案上若干个项目的运行,前文所创建的“test”项目是在一个工作台上的单独项目。在VC6.0集成开发环境中,自动生成的文件“.dsp”就是存储本项目的特定信息,而“.dsw”是存储一个或多个项目的解决方案。1.2.7本机帮助和联机帮助•使用帮助在软件开发中是常用的手段,由于VC6.0所涉及的技术繁多,可以安装的MSDN实际上只是所有VC6.0帮助的一个子集,因此在本机帮助得不到满意的答案时,可以使用联机帮助。帮助一般可以使用以下几种方式进行搜索:•按F1键。如果没有选定任何关键词,按F1键将调用本机MSDNHTMLHELP对话框,然后直接进行搜索。如果选定了某一关键词,则跳出的对话框直接定位到找到的该关键字的相关解释。•根据书为单位进行查询。单击“Help”菜单,选择“Content”命令将调用帮助文件,该文件将vc6.0集成开发环境和Win32SDK等按照章节编写成书。•根据主体进行查询。单击“Help”菜单,选择“Search”命令将调用输入关键字相关的主题和文章。1.3Win32基本应用程序的创建•本小节将讲解Win32的基本概念以及Win32应用程序的创建,并在最后一小节讲解在Win32应用程序中使用VC6.0的调试功能。1.3.1使用AppWizard应用程序向导•Win32一般是指Windows的32位操作系统,Windows从16位开始,到32位(Win98/Me/2000/NT/XP/2003等),现在是64位(XP有64位版的,Vista是典型的64位操作系统),现在Win32编程一般被通用来指在Windows平台下进行软件开发。而Win32SDK(SoftwareDevelopmentKit,软件开发包)则是在Windows的32位操作系统下提供的软件编程的接口,是为Windows操作系统的应用软件提供了可扩展的函数接口。•VC6.0可以很方便地创建Win32程序,过程如下:•(1)使用VC6.0创建新项目。•(2)选择创建Win32应用程序,并可将项目命名为“Win32”或其他用户自定义名称。该图所示主要是用于选择应用程序类型和设置项目名称。•(3)选择创建简单的Win32应用程序,该图所示是设置某特定应用程序的子类型。选择“Atypical”HelloWorld!”application”单选框,然后单击“Finish”按钮结束向导设置。选择创建Win32应用程序创建Win32类型1.3.2Win32应用程序的生成•在前文创建了一个Win32应用程序,生成了包含winMain函数的C++源文件,如图所示,该图所示是Win32应用程序的开发界面。编译并运行该程序可直接按F5键,运行效果如图所示。•Win32应用程序对于初学者虽然刚开始有点复杂,但无非就是几个部分:•winMain()函数,负责调用其他功能函数。•MyRegisterClass()函数,负责注册窗口的各项信息。•InitInstance()函数,负责初始化。•WndProc()函数,负责处理消息循环。Win32程序向导生成的工作区Win32应用程序运行界面1.3.3VC6.0的调试:变量跟踪和函数调用栈•变量跟踪和函数调用栈查看是VC6.0常用调试方法。以1.3.2的Win32应用程序为例,在WndProc()函数的“switch(message)caseWM_PAINT”程序段插入一些代码,用来测试变量跟踪信息:调试界面1.4Microsoft应用程序框架•本小节主要介绍Microsoft的应用程序框架,着重MFC的框架介绍,让读者对VC6.0的使用有个代码框架的概念。1.4.1全局对象•通过1.1小节的学习,发现用VC6.0创建一个MFC程序是非常容易的,细心的读者在阅读源代码过程中可能会发现,MFC程序怎么没有主函数?这也让很多习惯于C语言面向对象编程的读者感到无从下手,觉得不能理解程序运行顺序。•事实上,任何软件程序都有入口,否则操作系统无法调用它,也就是说无入口的软件程序是不能执行的。在到处都是类定义和类实现的MFC程序中,可以在1.1节创建的“test”项目的test.cpp源文件中找到一个在全局区域定义的对象:•CTestApptheApp;1.4.2MFC的消息映射和消息分类•根据处理函数和处理过程的不同,MFC主要处理三类消息:•Windows消息,前缀以“WM_”打头,WM_COMMAND例外。•控制通知消息,是控制子窗口送给父窗口的WM_COMMAND通知消息。•命令消息,这是来自菜单、工具条按钮、加速键等用户接口对象的WM_COMMAND通知消息,属于应用程序自己定义的消息。•注意:在本书第二篇中会详细讲解各种消息的意义和使用,在这里了解消息种类即可。•MFC的消
本文标题:vc6.0开发环境和应用程序框架
链接地址:https://www.777doc.com/doc-3383014 .html