环境下windows程序开发概述

上传人:tia****nde 文档编号:67710586 上传时间:2019-01-08 格式:PPT 页数:59 大小:352.51KB
返回 下载 相关 举报
环境下windows程序开发概述_第1页
第1页 / 共59页
环境下windows程序开发概述_第2页
第2页 / 共59页
环境下windows程序开发概述_第3页
第3页 / 共59页
环境下windows程序开发概述_第4页
第4页 / 共59页
环境下windows程序开发概述_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《环境下windows程序开发概述》由会员分享,可在线阅读,更多相关《环境下windows程序开发概述(59页珍藏版)》请在金锄头文库上搜索。

1、第12章 Visual C+环境下Windows程序开发概述,12.1 Visual C+可视化集成开发环境 12.2 创建、组织文件、工程和工作区 12.3 Windows编程基础 12.4 Win32开发 12.5 MFC编程,12.1 Visual C+可视化集成开发环境,12.1.1 Visual C+简介 12.1.2 项目开发过程 12.1.3 集成开发环境Developer Studio 12.1.4 常用功能键及其意义,返回首页,12.1.1 Visual C+简介,1Visual C+集成开发环境(IDE) 集成开发环境(IDE)是一个将程序编辑器、编译器、调试工具和其他建立

2、应用程序的工具集成在一起的用于开发应用程序的软件系统。 2向导(Wizard) 向导是一个通过一步步的帮助引导你工作的工具。Developer Studio中包含三个向导 。 3MFC库 库(library)是可以重复使用的源代码和目标代码的集合。MFC(Microsoft Fundamental Classes)是Visual C+开发环境所带的类库,在该类库中提供了大量的类,可以帮助开发人员快速建立应用程序。,返回本节,12.1.2 项目开发过程,一个用C+开发项目的通用开发过程如图12-1所示。,建立一个项目的第一步是利用编辑器建立程序代码文件,包括头文件、代码文件、资源文件等。然后,启

3、动编译程序,编译程序首先调用预处理程序处理程序中的预处理命令(如#include,#define等),经过预处理程序处理的代码将作为编译程序的输入。编译对用户程序进行词法和语法分析,建立目标文件,文件中包括机器代码、连接指令、外部引用以及从该源文件中产生的函数和数据名。此后,连接程序将所有的目标代码和用到的静态连接库的代码连接起来,为所有的外部变量和函数找到其提供地点,最后产生一个可执行文件。一般有一个makefile文件来协调各个部分产生可执行文件。,返回本节,12.1.3 集成开发环境Developer Studio,1进入Developer Studio 2Developer Studi

4、o的界面 3获得帮助信息 4Visual C+的编辑器,图12-2 Developer Studio界面,Developer Studio它具有以下特点:,(1)自动语法。 (2)自动缩进。 (3)参数帮助。 (4)集成的关键字帮助。 (5)拖放编辑。 (6)自动错误定位。,返回本节,12.1.4 常用功能键及其意义,表12-1 常用功能键,返回本节,12.2 创建、组织文件、工程和工作区,12.2.1 新建工程 12.2.2 新建工作区 12.2.3 增加已有文件到工程中 12.2.4 打开工作区 12.2.5 设置当前工程,返回首页,12.2.1 新建工程,项目工作区是一个包含用户的所有相

5、关项目和配置的实体。工程定义为一个配置和一组文件,用以生成最终的程序或二进制文件。一个项目工作区可以包含多个工程,这些工程既可以是同一类型的工程,也可以是不同类型的工程(如Visual C+和Visual J+工程)。工作区现在以.dsw为后缀名(以前为.mdp),项目文件现在以.dsp(以前为.mak)为后缀名。项目工作区如图12-3所示。,图12-3 项目工作区,要新建一个工程,可以: (1)在File菜单上,单击New,选择Projects标签。 (2)从列表中选择项目类型 (3)单击Create New Workspace(新建工作区)或Add to Current Workspace

6、(加入到当前工作区中)。 (4)要使新工程为子工程,可以选择Dependency of 检查框,并从列表中选择一个工程。,(5)在Project Name框中,输入新工程名,确保该名字必须与工作区中的别的工程名字不重名。 (6)在Location框中,指定工程存放的目录:可以直接输入路径名,也可以单击旁边的Browse按钮,浏览选择一个路径。 (7)单击Platform框中的相应检查框,指定工程的开发平台,返回本节,12.2.2 新建工作区,要创建一个空的工作区,可以: (1)在File菜单上,单击New。 (2)在随后弹出的对话框上,单击Workspace标签。 (3)从类型列表中选择Bla

7、nk Workspace。 (4)在Workspace Name框中输入名字,注意名字不能与它将要包含的工程同名。 (5)在Location框中指定存放工作区文件的目录。 (6)单击OK。,返回本节,12.2.3 增加已有文件到工程中,(1)打开包含目标工程的项目工作区文件。 (2)在Project菜单上,单击Add to Project,然后单击Files。 (3)在Insert Files into Project对话框中,浏览并定位要加入到工程中的文件名,然后选择它们。 (4)从Insert Into中选择工程名字,然后单击OK。,返回本节,12.2.4 打开工作区,选择File-Ope

8、n Workspace,指定要打开的工作区;或选择File-Recent Workspaces ,从最近打开过的工作区列表中选择一个。,返回本节,12.2.5 设置当前工程,选择Project Setting,可以为当前工程设置编译、链接和C/C+等各种选项。,返回本节,12.3 Windows编程基础,12.3.1 Windows API 12.3.2 Windows基础 12.3.3 Windows消息映射和处理,返回首页,12.3.1 Windows API,1Windows API的定义 Windows API是应用程序编程接口(Application Programming Inte

9、rface)的英文缩写。它是大量函数加上数字常量、宏、结构、类型以及其他相关项的集合。 2Windows API函数的分类 根据Windows API函数的功能,可以将其分为三类: (1)窗口管理函数。用以实现窗口的创建、移动和修改功能。 (2)图形设备(GUI)函数。用以实现与设备无关的图形操作功能。 (3)系统服务函数。用以实现与操作系统有关的多种功能。,返回本节,12.3.2 Windows基础,1事件 事件以如下三种方式产生: (1)通过输入设备,如键盘和鼠标。 (2)通过屏幕上的可视对象,如菜单、工具栏按钮、滚动条和对话框上的控件。 (3)来自Windows内部。 2消息 但Wind

10、ows捕获一个事件后,它会编写一条消息,并将相关信息放入一个数据结构中,然后将包含此数据结构的消息发送给需要此消息的程序。Windows消息是在Windows文件中用宏定义的常数。消息常数名通常以WM开头,格式为WM_XXX。,3绘图及设备环境 Windows具有图形用户界面(GUI),它包括菜单、工具栏、滚动条和对话框中的按钮等元素。 4对象与句柄 对设备环境的访问是通过Windows返回的句柄进行的。 5坐标系 要为绘制和其他任务指定位置,需要坐标系统。Windows提供了8种不同的坐标系。,返回本节,12.3.3 Windows消息映射和处理,开始执行 在Windows中,管理消息的方式

11、通常是这样的:当发生某个消息后,该消息进入消息队列,操作系统根据消息提供的信息决定由哪个应用程序来处理,该应用程序依照一定的方式查找应用程序各个类的消息映射(一组宏,这些宏用来确定某个消息及相应的处理程序的对应关系),找到处理程序,然后由处理程序执行。图12-4是Windows程序和Windows消息的基本流程。,图12-4 Windows程序和Windows消息处理的基本流程,Windows程序要处理的消息种类如下:,(1)Windows消息。该类消息以WM_开头(WM_COMMAND例外),通常由窗口和视图来处理。 (2)由控件和其他子窗口发送给父窗口的WM_COMMAND消息。这些消息中

12、包括EN_CHANGE通知码。 (3)来自于用户界面对象的WM_COMMAND消息。这些用户界面对象包括菜单、工具栏按钮和快捷键。,返回本节,12.4 Win32开发,12.4.1 抢先式多任务和多线程 12.4.2 连续的地址空间和先进的内存管理 12.4.3 内存映射文件 12.4.4 Win32s:Windows 3.x对Win32 API的支持 12.4.5 Win32编程基础,返回首页,Win32可以应用于特定的操作系统,这种系统可以直接控制和处理PC硬件资源,而不必象Win16 API那样依赖于MS-DOS系统服务。然而,Win32不是简单的由Win16从16位到32位的升级,更重

13、要的在于它支持: (1)高性能的抢先式多任务和多线程; (2)连续的32位地址空间和先进的内存管理; (3)对所有的可为进程共享的对象,解决了它的安全性问题; (4)内存映射文件;,12.4.1 抢先式多任务和多线程,Windows是一个多任务操作系统,它提供了一次运行多个应用程序的能力。 Windows 3.x的多任务是一种由协作、软件方式产生的有限的非抢先式的多任务。 Windows 95的多任务是一种抢先式多任务。在抢先式多任务操作系统中,系统在运行的所有进程之间对CPU时间进行共享,从而保证每个进程都能频繁的访问处理器,并且实现指令的连续执行。这样,每个Win32进程都需要分配一个优先

14、级,系统调度程序利用这种优先级来决定哪一时刻 。,一个线程处于以下三种状态之一:正在执行,挂起,准备运行。在单处理器环境下(如Windows 95),同一时刻只能运行一个线程。 为了在Win32中支持多线程进程结构,Win32在原来Win16基础上增加了: (1)对进程以及线程创建、操纵的支持; (2)对一个进程内线程之间的同步和同步对象的支持; (3)一个统一的共享机制。,返回本节,12.4.2 连续的地址空间和先进的内存管理,(1)申请一块可移动的内存块。 (2)锁定该内存块。因为Windows引入了虚拟内存管理,可以把内存块移动到硬盘交换文件中,所以在使用内存块之前,必须将它锁定在真正的

15、内存RAM之中,也就是告诉操作系统,现在这块内存暂时由应用程序来管理。 (3)对该内存块进行各种操作:如复制数据到内存块。 (4)解锁内存,应用程序将对该内存的控制交予Windows。,下面给出一个程序片段,来说明内存管理函数的用法。 HGLOBAL memHandle;/内存句柄 char far* lpMem;/假设长度为memLen memHandle=GlobalAlloc(GHND,memLen+1);/申请内存块,此处未做返回结果检查, /事实上,申请内存有时会失败 memcpy(lpMem,string,textLen);/拷贝数据,其中string为一字符串变量,textLen

16、 /是这个字符串的长度 GlobalUnlock(memHandle);/解锁内存 . GlobalFree(HGLOBAL) memHandle);/释放内存,返回本节,12.4.3 内存映射文件,内存映射文件是由一个文件到一块内存的映射。Win32提供了允许应用程序把文件映射到一个进程的函数(CreateFileMapping)。这样,文件内的数据就可以用内存读/写指令来访问,而不是用ReadFile和WriteFile这样的I/O系统函数,从而提高了文件存取速度。 这种函数最适用于需要读取文件并且对文件内包含的信息做语法分析的应用程序,如对输入文件进行语法分析的彩色语法编辑器,编译器等。,返回本节,12.4.4 Win32s:Windows 3.x对Win32 API的支持,Win32s与Win32是有区别的。Win32s的s的含义是指子集(subset)。 运行在Windows 3.x/Win32s系统上的Win32程序支持32位指针和32位寄存器,只需要在系统调用之前稍作形式替换。 W

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号