WINDOWS应用程序设计_第1页
WINDOWS应用程序设计_第2页
WINDOWS应用程序设计_第3页
WINDOWS应用程序设计_第4页
WINDOWS应用程序设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

linteOSW

马洪兵

1

★4

Windows应用程序设方

•Win32API

•Windows应用程序设计模式

•Windows应用程序的基本结构

•结构化异常处理

・动态链接库

Win32API★4

•Windows应用程序总是在常规的用户态下运行

■操作系统核心组件则对外界表现出中立的性质,它

们不实现用户界面,甚至不提供编程接口,系统服务

调用对应用程序而言是不公开的

•Windows操作系统依靠一组用户态环境子系统,作

为应用程序与操作系统核心之间的接口

3

Win32API*

•Win32子系统是Windows2000/XP操作系统的固有的

子系统,这个子系统能够提供应用程序运行所需要的

窗口管理、图形设备接口、媒体控制、内存管理等各

项服务功能,这些功能以函数库的形式组织在一起,

这就是Win32应用程序编程接口,简称为Win32Api

•Win32子系统负责将API调用转换成Windows操作系

统的系统服务调用

•对于应用程序开发人员而言,他所看到的Windows操

作系统实际上就是Win32API,操作系统的其他部分

对他来说是完全透明的。

Win32API

Windows应用程序与操作系统的关系

5

Win32API

•USER32.DLL:负责处理用户接口

•GDI32.DLL:负责在图形设备上执行绘图操作

•KERNEL32.DLL:操作系统核心功能服务

•COMCTL32.DLL:通用控件库

•COMDLG32.DLL:公共对话框

•SHELL32.DLL:用户界面外壳

•DIBENG.DLL:图形引擎

•NETAPI32.DLL:网络

6

Win32API

标准Win32API函数分类:

•系统服务

•通用控件库

■图形设备接口

•网络服务

•用户接口

•系统Shell

•Windows系统信息

7

■窗口

目的是保证用户能够同时访问大多数应用程序

应用程序使用窗口来显示输出或接收用户的输入

2、应用程序只有通过窗口才能访问系统显示器;并且

苣仁,通过使用窗口与其他应用程序共享系统显示器

8

•事件驱动

Windows应用程序的执行顺序取决于事件发生的顺

序,描述事件发生的信息称为消息,而事件驱动程

序设计则是围绕着消息的产生与处理而展开的。

波方夕

消息可以分为由硬件设备产生的输入消息和来自

容矽Windows系统的窗口管理消息

发送消息---send

指派消息---post

9

物Windows应用程序设计模式

•事件驱动

硬件输入

10

•Windows应用程序的开发流程

Windows应用程序分为程序代码和用户界面资源

两部分,两部分通过资源编译器组合为一个完整

的EXE文件

将用户界面资源一类的静态数据与程序代码相分

离有如下一些优点:

叱减少内存要求;

,划清了程序员与用户界面设计人员的任

务分工;

a用户界面风格的变化可以不必修改程序

代码或只需进行少量的修改。

Windows应用程序设计植

•Windows应用程序的开发流程

工具

文本文件

二进制文件12

A

1/Windows应用程序的基

Windows应用程序具有相对固定的基本结构,

入口点函数WinMain和窗口函数构成了

音aWindows应用程序的基本框架。

13

<O

5V7..揄函数

dWinMain函数是程序的入口点,相当于标准C语

言中的main函数

京,WinMain函数主要由四部分组成

■•

噜±.夕注册窗口类

2若。・个典口

O,建立消息循环

W

14

M7

•WinMain函数----->消息循环

勃Windows并不直接把输入消息发送给应用程序,

而是将其送入应用程序的消息队列之中。止匕外,

SWindows和其他应用程序也可以将消息指派到应

用程序队列中。

应用程序必须读取应用程序队列,检索消息并将

泗它们发送出去,以便适当的窗口函数能够处理它

O—们,负责这一任务的便是消息循环。

15

•WinMain函数>消息循环

whil㊀(G㊀tM㊀ssag㊀(&Msg,NULL,0,0))

Translat㊀M㊀ssag㊀(&Msg);

DispatchM㊀ssag㊀(&Msg);

)

GetMessage函数检索到WM_QUIT消息时返回非零

值,检索到其他消息均返向KULL。

16

■窗口函数

窗口函数也称为窗口过程,负责从Windows接收消

息,并根据这些消息完成特定的操作

窗口函数是一个回调函数,由Windows系统调用,

应用程序并不会直接调用它的窗口函数

窗口函数的主体是由一系列case语句组成的消

受用息处理程序段

O—

如果窗口函数不处理某些消息,则必须把它们

蚪传给DefWindowProc函数

17

Windows应用程序的基本结

V/indows系统

指沈的消息发送的消息

WM.KEYDOWNWM_CREATE1

WM_KEYUPWM_DESTROY

WM_M0USEMOVEWM_SIJE3

WM_LBUTTONDOWNWM_PAINT

WM_QUIT

j①

DcfWindowProc()

应用程序的

一消息队列

检留到

的相j息

J(iI

GelMessage()⑤

y

应用程序

WinMain()

DispatchMessage()

回调

WndProc()

1case1

1casc2

case3

1DefauIt______________

18

1Windows应用程序的基本结

nH当用户关闭窗口时,Windows系统将把

WM_DESTROY消息发送给该窗口的窗口函数,

在这I中情况下,窗口函数应该使用

PostQuitMessage函数将WM_QUIT消息发送到

s应用程序队列中,这样可以使GetMessage函数

检索到WM_QUIT消息,从而结束消息循环,

泗退出应用程序。

O—

19

Windows应用程序的基本结

20

结构化异常处理张先4

Windows在系统底层提供了一种称为结构化异常处理

SEH的系统机制。利用SEH可以把程序主要的工作同

错误处理分离开来,这样的分离,可以使程序员集中

精力关注程序要完成的任务,而将可能发生的错误放

在后面处理。

异常是在应用程序的正常执行过程中发生的不正常事

件。CPU引发的异常称为硬件异常,操作系统和应用

程序直接引发的异常,称为软件异常

结构化异常处理张先4

SHE是操作系统的一种系统机制,与特定的程序

设计语言无关。

应用程序要利用系统提供的SHE机制,则必须借

助于特定程序设计语言的相关语法。

因此,SEH不但涉及操作系统,而且与编译器有

密切的关系。

结构化异常处理包括异常处理和终止处理两个方面

22

结构化异常处理**卷

•异常处理

try

F

...//guardeds㊀ction

)

㊀xc㊀pt(㊀xc㊀ptionfilt㊀r)

F

...//exceptionhandl㊀r

23

结构化异常处理张先4

•异常处理

异常过滤器返回如下三个异常标识符之一

^ECXEPTIONEXECUTEHANDLER

eECXEPTI0N1C0NTINUgEXECUTION

^ECXEPTIONZCONTINUEZSEARCH

24

结构化异常处理张先4

•终止处理

Windows应用程序在运行时通常要分配资源,使

用这些资源,然后释放它们。

由于异常改变了控制的流程,因此很容易导致无

法释放在产生异常的代码块中分配的资源。

使用终止处理程序可以保证进行这样的清除工作

结构化异常处理

•终止处理

try

•••

}

finally

•••

}

26

结构化异常处理张先4

•终止处理

有两种情况可能使受保护段不正常地结束:

它在try块中执行了return、goto、break或

continue等控制语句

行在try块中发生异常

27

结构化异常处理张先4

■软件异常

当一个函数执行失败时,习惯上要返回一些特

殊的值来,函数的调用者可以检查这些特殊值

并采取一种替代的动作

如果这个调用者是被另一个调用者调用的函数

,那么它还需要将它自己的失败代码返回给它

的调用者

这种错误代码的逐层传递会使源程序变得非常

难于编写和维护

采用软件异常则可以解决这些问题

28

动态链接库*决斗

动态链接库DLL是一个可执行程序模块,模块中包

含了可以被其他应用程序或其他DLL共享的程序代

码和资源

采用DLL的优点:

,当多个进程同时使用同一个DLL时,只要在内

存中装入它的一个副本即可,从而可以节省内存;

eDLL与调用它的应用程序相分离,因此可以在

不修改应用程序的情况下对DLL进行更新;

,只要在调用DLL中的函数时遵循相同的调用规

范,那么DLL中的函数就可以被各种编程语言编

制的应用程序调用

29

动态链接库

•DLL到进程地址空间的映射

装入时刻动态链接

动态

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论