第5章:Windows 应用程序编程接口API课件.ppt
《第5章:Windows 应用程序编程接口API课件.ppt》由会员分享,可在线阅读,更多相关《第5章:Windows 应用程序编程接口API课件.ppt(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Visual C+Visual C+第第5章章 Windows应用程序应用程序 编程接口编程接口 教学要点教学要点 本章内容主要包括API的概念及分类,从API的使用看操作系统所提供的服务,操作系统内核中的文件操作API的使用,网络服务API函数的使用,利用图形设备接口API编写图形用户界面程序的方法。要求了解API的分类及其对应的磁盘上的物理文件.DLL的名称、网络服务API的含义和网络编程的一些基本概念、进程概念及建立新进程的方法、WM_PAINT消息含义。握握API概念和其与操作系统提供的程序员接口的关系、内核中文件操作API的调用,熟悉API编写图形用户界面程序的步骤,熟练掌握API编
2、写的图形用户界面程序的主要组成模块及含义。Visual C+Visual C+第第5章章 目录目录5.1 API5.1 API概述概述5.2 5.2 内核服务内核服务APIAPI函数的使用函数的使用5.3 5.3 网络接口服务网络接口服务5.4 Win32 API5.4 Win32 API编写图形界面程序编写图形界面程序5.5 5.5 图形设备接口与用户接口服务图形设备接口与用户接口服务 习题习题 本本章章以以一一些些APIAPI设设计计的的控控制制台台程程序序和和具具有有图图形形界界面面的的Win32Win32程程序序为为例例,阐阐述述了了利利用用APIAPI函函数数开开发发程程序序的的过过
3、程程,重重点点在在于于理理解解操操作作系系统统所提供的各种服务以及程序员如何进行调用。所提供的各种服务以及程序员如何进行调用。Visual C+Visual C+5.1 API概述概述5.1.1 关于关于Windows API编程模式编程模式5.1.2 API简介简介5.1.3 Windows核心核心三个动态链接库三个动态链接库5.1.4 Windows API分类分类*5.1.5 操作系统的认识操作系统的认识Visual C+Visual C+Windows APIWindows API编程是一种原始的开发编程是一种原始的开发WindowsWindows应用程应用程序模式,它主要使用的是序模
4、式,它主要使用的是C C语言、少量的语言、少量的C+C+通用类及通用类及“原始原始”的的WindowsWindows应用程序编程接口应用程序编程接口API(Application API(Application Programming Interface)Programming Interface)。这些函数都是比较底层的函数,其地位大致相当于字符界面环境下C语言的标准库函数,只不过其运行环境为Windows的图形界面环境。本篇的后多半部分虽然采用的是相对比较简单的MFC编程,但使用底层的使用底层的APIAPI函数编写程序可以看到许多函数编写程序可以看到许多MFCMFC编程看不到的东西编程看不
5、到的东西,从而对Windows的内部运作有更深入的了解。进行进行APIAPI编程,要求用户对编程,要求用户对WindowsWindows环境比环境比较熟悉,并且熟悉较熟悉,并且熟悉C C语言。语言。在API编程中用到大量的有关操作系统的结构体变量和控制操作系统的函数,当在使用API函数遇到问题时,可以随时查阅Windows的API文档,它位于MSDN的Platform SDK部分。5.1.1 关于关于WindowsAPI编程模式编程模式Visual C+Visual C+Windows操作系统向程序员提供了可以实现开启窗口、绘制图形,使用系统各种设备等的一组函数服务,称之为Applicatio
6、n Programming InterfaceApplication Programming Interface(应用程序编程接口),即即APIAPI函数函数。利用VC进行Windows应用程序的开发,除了用到除了用到各种.h头文件中的库函数及数据结构外,还需要使用还需要使用Windows SDK(Software Development Kit,软件开发工具包)提供的使用于Windows应用程序的特殊库函数和数据结构、语句、文件结构。所有这些内容组成了Windows应用程序设计接口API。使用使用Win32 APIWin32 API,应用程序可以充分挖掘出,应用程序可以充分挖掘出Window
7、s 32Windows 32位位操作系统的潜力操作系统的潜力,Microsoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用Win32 API,不但可以开发出在各种平台上都能运行的应用程序,而且还可以充分利用每个平台上特有的功能和属性。5.1.2 API简介简介Visual C+Visual C+5.1.3 Windows核心核心 三个动态链接库三个动态链接库 Windows Windows操作系统核心有操作系统核心有三个动态链接库三个动态链接库(Kernel32.dllKernel32.dll,User32.dllUser32.dll,Gdi32.dllGdi32
8、.dll),这些动态链接库构成了),这些动态链接库构成了Win32 APIWin32 API函数。函数。1 1WindowsWindows内核库(内核库(Kernel32.dllKernel32.dll)内核库中的函数用于处理操作系统功能的所有核心工作,例如多任务管理、内存管理等。另外内核库还管理系统注册表。2 2WindowsWindows用户界面管理库(用户界面管理库(User32.dllUser32.dll)用户界面管理库包括了Windows管理、菜单、光标、定时器和通信等有关的函数。在Windows中,窗口的标识被称为“句柄”。3 3WindowsWindows图形设备界面库(图形设备
9、界面库(Gdi32.dllGdi32.dll)图形设备界面库提供了用于管理系统支持的所有图形设备函数,包括屏幕、打印机等设备的管理。GDI库中的函数为应用程序提供与设备无关的绘图内容。应用程序中通过GDI库中的函数绘图,不是直接面向硬件操作,而是通过“设备描述表”来进行操作,它通过句柄hDC来跟踪。Windows三个核心库中的API函数的原型声名在windows.h中有说明,这就是我们在编写Win32应用程序时要在程序开头放#include“windows.h”语句的原因。Visual C+Visual C+5.1.4 Windows API分类分类 根据根据Windows APIWindow
10、s API函数完成的功能,可以将其分为如下的类别:函数完成的功能,可以将其分为如下的类别:1 1内核服务 通过内核服务函数,应用程序可以使用计算机中的资源和操作系统通过内核服务函数,应用程序可以使用计算机中的资源和操作系统的特性,例如内存,文件系统、设备、进程、线程等的特性,例如内存,文件系统、设备、进程、线程等。拿一个简单的文件输入输出函数来说,通过这些函数,程序员可以存取本地计算机或网络中某台计算机中的文件、目录、输入输出设备,并且这些文件函数支持各种各样的文件系统,包括FAT、NTFS的文件系统。内核服务体现了内核服务体现了WindowsWindows操作系统操作系统“服务服务”的观点的
11、观点。作为一个程序员我们应该利用这些服务函数来充分发挥操作系统的功能。对于这部分API函数的使用,我们可以在基于控制台的应用程序中编写,因为这些函数都是一些与Windows图形用户界面无关的,在字符方式下操作比较简单。后面有关这方面函数的操作就是在基于控制台的应用程序中使用的。内核服务的函数大部分包含在内核服务的函数大部分包含在WindowsWindows内核库内核库Kernel32.dllKernel32.dll中中。Visual C+Visual C+5.1.4 WindowsAPI分类分类(续)(续)2 2图形设备接口图图形形设设备备接接口口是是WindowsWindows最最原原始始的
12、的图图形形输输出出库库(最最原原始始意意味味着着除除了了GDIGDI外外,还还有有工工业业界界用用的的OpenGlOpenGl和和游游戏戏界界用用的的DirectXDirectX,VCVC都都对对他他们们提提供供支支持持)。当看到图形或文本显示在屏幕上时,这就是GDI的功劳。它提供了在显示器、打印机或其它设备上生成图形的函数与相关的数据结构。利用GDI函数,你可以画直线、曲线、文本、位图等。你还可以使用各种各样的绘图对象如笔、画刷、字体等,使得所绘制的图形更加丰富多彩。另外,Windows本身也是通过GDI来绘制其用户界面,包括窗口、菜单和对话框。顾名思义,图图形形设设备备接接口口是是与与图图
13、形形界界面面有有关关的,因此这些函数的使用要在图形用户界面下操作。即必须建立基于Win32的应用程序,建立的步骤如4.4节所示。图形设备接口的函数是包含在图形设备接口的函数是包含在WindowsWindows图形设备界面库图形设备界面库Gdi32.dllGdi32.dll中。中。Visual C+Visual C+5.1.4 Windows API分类分类(续)(续)3 3用户接口服务 用户接口服务函数可以创建和使用Windows来显示输出、提示用户输入和执行与用户交互的任务。用户接口服务是通过一些常见的Windows对象来实现的,例如按钮、组合框、编辑框、菜单、键盘输入、定时器等。用户接口服
14、务的函数是在用户接口服务的函数是在WindowsWindows用户界面管理库用户界面管理库User32.dllUser32.dll中。中。4 4网络服务 网络服务允许分布在网络中不同计算机上的应用程序进行通讯。通过这些函数可以创建和管理共享资源,例如共享目录和网络打印机。网网络络服服务务的的函函数数是是在在网网络络接接口口函函数数库库Mpr.dllMpr.dll、Wininet.dllWininet.dll和和Winsock32.dllWinsock32.dll中。中。5 5多媒体服务 多媒体技术是指利用计算机综合处理多媒体信息文本、图形、图象和声音等,使多种信息建立逻辑连接,集成为一个系统并
15、具有交互性。多媒体服务提供了数字音频、视频、图形、图象等服务。该服务的函数主要包含在多媒体函数库该服务的函数主要包含在多媒体函数库Winmm.dllWinmm.dll中。中。Visual C+Visual C+5.1.4 WindowsAPI分类分类(续)(续)6 6客户/服务方式存取服务 在客户/服务方式存取模式中,客户可以连接到服务器上以使用服务器的功能和数据,服务器通过客户端的标识和权限来决定客户端可以使用的功能。Win2K提供了一套函数来限制和允许客户端对服务端的访问。这些函数扩展了Win2k的存取控制模型来使用服务端的私有对象和使用服务端的功能。客客户户/服服务务方方式式存存取取服服
16、务务又又称称操操作作系系统统高高级级编编程程接口,这些函数包含在高级编程接口函数库接口,这些函数包含在高级编程接口函数库Advapi32.dllAdvapi32.dll中。中。7 7版本服务 版本服务主要提供有关文件的版本信息。这这些些服服务务所所对对应应的的函函数数包含在版本函数库包含在版本函数库Version.dllVersion.dll中。中。8 8公共对话框服务 公共对话框,又叫通用对话框,是Windows预定义的对话框,可以使用通用对话框来执行六种标准操作,选择文件,指定字体、选择颜色、打印设置、查找文本、保存文件。这这些些服服务务所所对对应应的的函函数数包包含含在在公共对话框函数库
17、公共对话框函数库Comdlg32.dllComdlg32.dll中。中。Visual C+Visual C+5.1.4 WindowsAPI分类分类(续)(续)9 9打印管理服务 在Windows操作系统下,可以实现在各种设备下的打印。打印管理服务提供了完整的函数集支持这些操作,例如检索打印机,准备打印等。这这些些服服务务所所对对应应的的函函数数包含在打印管理函数库包含在打印管理函数库Winspool.drvWinspool.drv中。中。1010解/压缩文件服务 该服务提供了对文件的压缩和解压服务。这这些些服服务务所对应的函数包含在函数库所对应的函数包含在函数库Lz32.dllLz32.dl
18、l。在在VC6.0VC6.0中中提提供供了了一一个个文文件件Win32api.csvWin32api.csv。它它是是一一个个Win16Win16与与Win32Win32函函数数的的对对照照表表。通过它读者可以浏览到Windows各种版本下API函数的原型说明。Visual C+Visual C+5.1.5 操作系统的认识操作系统的认识操作系统有两个接口:一个是操作系统有两个接口:一个是用户接口用户接口,另一个是,另一个是程序员接口程序员接口。VC开发工具的强大,其中很重要的一个方面就是对于Windows API的直接调用,其它任何开发工具中的函数都是对其的一个封装。凡凡是是在在Windows
19、Windows工工作作环环境境下下执执行行的的应应用用程程序序,都都可可以以通通过过某某种种特特定定方方式式调调用用Woindows Woindows APIAPI函函数数。可以毫不夸张地说,Windows API函数是构建整个Windows框架的基石,在它下面是Windows操作系统核心,在它上面则是所有华丽的Windows应用程序。事实上,任任何何开开发发工工具具提提供供的的类类库库和和构构件件都都是是架架构构在在Win32 Win32 APIAPI函函数数基基础础上上,是是封封装装了了的的APIAPI函函数数集集合合。这些类库和构件简化了程序的开发,但其功能有限。在实际应用中,如果我们希
20、望开发出更灵活、更实用、更具效率的程序时,则必须要涉及直接使用API函数。虽然类库和构件使应用程序的开发简单了,但它们只提供Windows的常用的一般功能,对于比较复杂和特殊的功能来说,使用类库和构件中提供的方法是非常难以实现的,这时就需要直接调用特定的API函数。Visual C+Visual C+5.2 内核服务内核服务API函数的使用函数的使用 内核服务是最能体现内核服务是最能体现APIAPI函数威力的地方,通过这些函数,用函数威力的地方,通过这些函数,用户能够使用操作系统内核所提供的核心功能。操作系统的进程管户能够使用操作系统内核所提供的核心功能。操作系统的进程管理、文件管理、内存管理
21、都是属于内核的功能。理、文件管理、内存管理都是属于内核的功能。5.2.1 文件管理内核服务文件管理内核服务5.2.2 进程操作进程操作5.2.3 计算机系统信息操作计算机系统信息操作Visual C+Visual C+VCVC下提供了对文件操作的四种方式:下提供了对文件操作的四种方式:(1 1)使用C语言中的fopen()、fprintf()、fread()等基本的函数进行文件操作;(2 2)使用C+中的流式文件接口fstream中的函数进行操作;(3 3)使用面向对象的类CFile进行操作;(4 4)使用有关的文件API进行操作。5.2.1 文件管理内核服务文件管理内核服务 1.1.文件操作
22、文件操作 2.2.驱动器操作驱动器操作Visual C+Visual C+APIAPI为一般的文件操作提供了三个函数:移动、复制和删除。为一般的文件操作提供了三个函数:移动、复制和删除。文件拷贝的文件拷贝的APIAPI函数如下所示:函数如下所示:BOOL CopyFile(/BOOL CopyFile(/从源文件向目标文件复制内容从源文件向目标文件复制内容 LPCTSTR lpExisting,/LPCTSTR lpExisting,/源文件名称源文件名称 LPCTSTR lpNew,/LPCTSTR lpNew,/目标文件名称目标文件名称 BOOL bFailIfExists BOOL bF
23、ailIfExists/*/*目标文件存在时的操作模式目标文件存在时的操作模式,为为truetrue时时,函数调用失败函数调用失败,为为FalseFalse时,时,现有文件将被覆盖现有文件将被覆盖*/*/););文件移动和文件删除的文件移动和文件删除的APIAPI函数是函数是MoveFileEx()MoveFileEx()和和DeleteFile()DeleteFile()【例5-1】调用API函数CopyFile实现文件拷贝实例。Windows的内核功能的实现不一定要在Windows的图形界面下完成,在字符方式下也可以。由于目前Windows图形用户接口程序的开发还没有讲(5.4节和5.5节
24、中讲),并且我们目前掌握的重点是利用API函数实现Windows内核功能的演示,所以下面的程序下面的程序仍然是字符界面下的单文件控制台工程,该程序的主文件的名称为。1.文件操作文件操作Visual C+Visual C+#include /windows#include /windows操作系统操作系统APIAPI函数的头文件函数的头文件#include#include void main()void main()char SourceMAX_PATH;char SourceMAX_PATH;char DestMAX_PATH;char DestMAX_PATH;BOOL Success;BO
25、OL Success;coutcoutSource;cinSource;cout coutDest;cinDest;Success=Copy);Success=Copy);/调用调用APIAPI函数函数CopyFileCopyFile实现文件拷贝实现文件拷贝if(!Success)if(!Success)coutcout拷拷贝贝失失败败,错错误误的的代代码码为为:GetLastError()endl;GetLastError()endl;/调用调用APIAPI函数函数GetLastError()GetLastError()求出错的代码求出错的代码elseelse cout cout=1;/Di
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章:Windows 应用程序编程接口API课件 Windows 应用程序 编程 接口 API 课件
限制150内