第8章 Windows应用程序设计 >Win32 api Windows应用程序设计模式 Windows应用程序的基本结构 结构化异常处理 ≯动态链接库
1 ØWin32 API ØWindows应用程序设计模式 ØWindows应用程序的基本结构 Ø结构化异常处理 Ø动态链接库 第8章 Windows应用程序设计
WindOws api与MFC 早期是用C语言直接调用 Windows SDK( Softwar Development Kit!件开发工具包)中的API( Application Program Interface应用程序接口)来开发 Windows应用程 ,由于需要亲自处理很多繁琐的编程细节,加上 Windows API有两千多个函数、几百个数据结构和变量类型,所以进行 indows编程是一件非常困难与痛苦的事。 suaC+采用OOP来进行 Windows编程,将API的几千个函 数、结构和变量类型封装在200个左右的类中(常用的只有十 九个类),并且屏蔽掉了许多繁琐的编程细节,使得 Windows 编程大大简化。微软公司称这些类所组成的类库为MFC ( Microsoft Foundation Class Library微软基础类库)。 Windows操作系统依靠一组用户态环境子系统,作为应用程序 与操作系统核心之间的接口
2 Windows API与MFC 早期是用C语言直接调用Windows SDK (Software Development Kit软件开发工具包)中的API(Application Program Interface 应用程序接口)来开发Windows应用程 序,由于需要亲自处理很多繁琐的编程细节,加上Windows API有两千多个函数、几百个数据结构和变量类型,所以进行 Windows 编程是一件非常困难与痛苦的事。 Visual C++采用OOP来进行Windows 编程,将API的几千个函 数、结构和变量类型封装在200个左右的类中(常用的只有十 几个类),并且屏蔽掉了许多繁琐的编程细节,使得Windows 编程大大简化。微软公司称这些类所组成的类库为MFC (Microsoft Foundation Class Library微软基础类库)。 Windows操作系统依靠一组用户态环境子系统,作为应用程序 与操作系统核心之间的接口
Win32 API W Indows Windows 应用应 应里程序 n32 子系统 用户态 核心 系统服务 硬件层 Windows应用程序与操作系统的关系
3 Win32 API Windows 应用程序与操作系统的关系 Windows 应用程序 Windows 应用程序 Win32 子系统 用户态 系统服务 硬件层 核心态
Win32 api USER32DLL:负责处理用户接口 GDI32DLL:负责在图形设备上执行绘图操作 .KERNEL32DLL:操作系统核心功能服务 COMCTL32DLL:通用控件库 COMDLG32.DLL:公共对话框 SHEL32DLL:用户界面外壳 DIBENG DLL:图形引擎 NETAP32DLL:网络
4 Win32 API ŸUSER32.DLL:负责处理用户接口 ŸGDI32.DLL:负责在图形设备上执行绘图操作 ŸKERNEL32.DLL:操作系统核心功能服务 •COMCTL32.DLL:通用控件库 •COMDLG32.DLL:公共对话框 •SHELL32.DLL:用户界面外壳 •DIBENG.DLL:图形引擎 •NETAPI32.DLL:网络
Win32 api 标准Win32API函数分类 系统服务 通用控件库 GDI 网络服务 用户接口 系统 Shell Windows系统信息
5 Win32 API 标准Win32 API函数分类: •系统服务 •通用控件库 •GDI •网络服务 •用户接口 •系统Shell •Windows 系统信息
Windows应用程序设讲模式 在字符界面型OS(如D0S)中执行应用程序时,程序 必须取得CPU的控制权,整个运行过程都由程序本身 来控制,称之为过程驱动的程序结构。而对GUI型0S (如 Windows),情形则完全不同:在应用程序的运 行过程中,大部分时间是由OS掌握控制权,只是在发 生用户或系统事件(如移动鼠标、按下键盘、选择菜 单或时钟、通信)后,OS才调用程序中的对应事件处 理模块,所以称之为事件驱动的程序结构
6 Windows应用程序设计模式 在字符界面型OS(如DOS)中执行应用程序时,程序 必须取得CPU的控制权,整个运行过程都由程序本身 来控制,称之为过程驱动的程序结构。而对GUI型OS (如Windows),情形则完全不同:在应用程序的运 行过程中,大部分时间是由OS掌握控制权,只是在发 生用户或系统事件(如移动鼠标、按下键盘、选择菜 单或时钟、通信)后,OS才调用程序中的对应事件处 理模块,所以称之为事件驱动的程序结构
Windows应用程序设讲模式 件驱动在GU型OS中,事件发生后会产生对应的消息,消息提供 了应用程序与OS之间、应用程序与应用程序之间的通信手段;多 数应用程序的大部分代码都是用来响应和处理这些消息,所以也称 为消息驱动的程序结构。 Windows维护着一个系统消息队列, Windows也为每个应用程序 创建一个应用消息队列,事件所产生的消息,首先进入系统消息队 列,然后再被传送到对应的应用消息队列,最后才被发送到消息所 对应的窗口
7 Windows应用程序设计模式 事件驱动在GUI型OS中,事件发生后会产生对应的消息,消息提供 了应用程序与OS之间、应用程序与应用程序之间的通信手段;多 数应用程序的大部分代码都是用来响应和处理这些消息,所以也称 之为消息驱动的程序结构。 Windows 维护着一个系统消息队列,Windows也为每个应用程序 创建一个应用消息队列,事件所产生的消息,首先进入系统消息队 列,然后再被传送到对应的应用消息队列,最后才被发送到消息所 对应的窗口
Windows应用程序设讲模式 事件驱动 WndowS 硬件输为 用力 循
8 Windows应用程序设计模式 •事件驱动 硬件输入 系统消息队列 应用程序队列1 应用程序队列n Windows WinMain函数 消息循环 窗口 函数1 窗口 函数m 应用程序1 WinMain函数 消息循环 窗口 函数1 窗口 函数m 应用程序n
Windows应用程序设讲模式 Windows应用程序的开发流程 Windows应用程序分为程序代码和用户界面资源 两部分,两部分通过资源编译器组合为一个完整 的EXE文件 将用户界面资源一类的静态数据与程序代码相分 离有如下一些优点 减少内存要求; 划清了程序员与用户界面设计人员的任 务分工; G用户界面风格的变化可以不必修改程序 代码或只需进行少量的修改
9 Windows应用程序设计模式 •Windows应用程序的开发流程 Windows 应用程序分为程序代码和用户界面资源 两部分,两部分通过资源编译器组合为一个完整 的EXE文件 将用户界面资源一类的静态数据与程序代码相分 离有如下一些优点: F减少内存要求; F划清了程序员与用户界面设计人员的任 务分工; F用户界面风格的变化可以不必修改程序 代码或只需进行少量的修改
Windows应用程序设讲模式 Windows应用程序的开发流程 话框编辑踢 俭源编译器 B 校本文件 进制文件
10 Windows应用程序设计模式 •Windows应用程序的开发流程 链接器 .EXE .LIB .DEF .C .H .RC .DLG .BMP .ICO .CUR .FON .RES .OBJ 资源编译器 C编译器 对话框编辑器 图象编辑器 字体编辑器 工具 文本文件 二进制文件