第五章_Windows应用程序编程接口API

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Visual C++
5.1.4 WindowsAPI分类(续)
9. 打印管理服务
在Windows操作系统下,可以实现在各种设备下的打 印。打印管理服务提供了完整的函数集支持这些操作, 例如检索打印机,准备打印等。这些服务所对应的函数 包含在打印管理函数库——Winspool.drv中。 10. 解/压缩文件服务
该服务提供了对文件的压缩和解压服务。这些服务 所对应的函数包含在函数库——Lz32.dll。
在VC6.0中提供了一个文件Win32api.csv。它是一个 Win16与Win32函数的对照表。通过它读者可以浏览到 Windows各种版本下API函数的原型说明。
Visual C++
5.1.5 操作系统的认识
第5章 目 录
Visual C++
本章以一些API设计的控制台程序和具有图形界面的Win32程序 为例,阐述了利用API函数开发程序的过程,重点在于理解操作系统 所提供的各种服务以及程序员如何进行调用。
1. 2. 3. 4. 5. 习题
API概述 内核服务API函数的使用 网络接口服务 Win32 API编写图形界面程序 图形设备接口与用户接口服务
内核服务的函数大部分包含在Windows内核库——Kernel32.dll中。
Visual C++
5.1.4 WindowsAPI分类(续)
■ 2.图形设备接口

图形设备接口是Windows最原始的图形输出库(最原
始意味着除了GDI外,还有工业界用的OpenGl和游戏界用的
DirectX,VC都对他们提供支持)。当看到图形或文本显示在屏幕
Visual C++
第5章 Windows应用程序编程接口
教学要点
本章内容主要包括API的概念及分类,从API的使用看 操作系统所提供的服务,操作系统内核中的文件操作API 的使用,网络服务API函数的使用,利用图形设备接口 API编写图形用户界面程序的方法。
要求了解API的分类及其对应的磁盘上的物理文件 .DLL的名称、网络服务API的含义和网络编程的一些基本 概念、进程概念及建立新进程的方法、WM_PAINT消息 含义。握握API概念和其与操作系统提供的程序员接口的 关系、内核中文件操作API的调用,熟悉API编写图形用 户界面程序的步骤,熟练掌握API编写的图形用户界面程 序的主要组成模块及含义。
内核服务体现了Windows操作系统“服务”的观点。作为一个程序员 我们应该利用这些服务函数来充分发挥操作系统的功能。对于这部分API函 数的使用,我们可以在基于控制台的应用程序中编写,因为这些函数 都是 一些与Windows图形用户界面无关的,在字符方式下操作比较简单。后面有 关这方面函数的操作就是在基于控制台的应用程序中使用的。
VC下提供了对文件操作的四种方式:
1使用C语言中的fopen()、fprintf()、fread()等基本的函数进 行文件操作; 2 使用C++中的流式文件接口fstream中的函数进行操作; 3 使用面向对象的类CFile进行操作;
4 使用有关的文件API进行操作。
1. 文件操作 2. 驱动器操作
5.1.2 API简介
Visual C++
Windows操作系统向程序员提供了可以实现开启窗口、绘制 图形,使用系统各种设备等的一组函数服务,称之为 Application Programming Interface(应用程序编程接口), 即API函数。
利用VC进行Windows应用程序的开发,除了用到各种.h头文 件中的库函数及数据结构外,还需要使用Windows SDK(Software Development Kit,软件开发工具包)提供的使用 于Windows应用程序的特殊库函数和数据结构、语句、文件结 构。所有这些内容组成了Windows应用程序设计接口API。
5.1 API概述
Visual C++
1. 关于Windows API编程模式 2. API简介 3. Windows核心——三个动态链接库 4. Windows API分类 *5.1.5 操作系统的认识
Visual C++
5.1.1 关于WindowsAPI编程ቤተ መጻሕፍቲ ባይዱ式
Windows API编程是一种原始的开发Windows应用程 序模式,它主要使用的是C语言、少量的C++通用类及 “原始”的Windows应用程序编程接口 API(Application Programming Interface)。这些函 数都是比较底层的函数,其地位大致相当于字符界面环 境下C语言的标准库函数,只不过其运行环境为Windows 的图形界面环境。
用户界面管理库包括了Windows管理、菜单、光标、定时器和通信等有关的 函数。在Windows中,窗口的标识被称为“句柄”。 3. Windows图形设备界面库(Gdi32.dll)
图形设备界面库提供了用于管理系统支持的所有图形设备函数,包括屏幕、 打印机等设备的管理。GDI库中的函数为应用程序提供与设备无关的绘图内容。 应用程序中通过GDI库中的函数绘图,不是直接面向硬件操作,而是通过“设备 描述表”来进行操作,它通过句柄hDC来跟踪。
操作系统有两个接口:一个是用户接口,另一个是程序员接口。
VC开发工具的强大,其中很重要的一个方面就是对于Windows API的直接调用,其它任何开发工具中的函数都是对其的一个封装。 凡是在Windows工作环境下执行的应用程序,都可以通过某种特定 方式调用Woindows API函数。可以毫不夸张地说,Windows API函 数是构建整个Windows框架的基石,在它下面是Windows操作系统核心 ,在它上面则是所有华丽的Windows应用程序。
7. 版本服务 版本服务主要提供有关文件的版本信息。这些服务所对应的函数
包含在版本函数库——Version.dll中。
8. 公共对话框服务
公共对话框,又叫通用对话框,是Windows预定义的对话框,可以 使用通用对话框来执行六种标准操作,选择文件,指定字体、选择颜 色、打印设置、查找文本、保存文件。这些服务所对应的函数包含在 公共对话框函数库——Comdlg32.dll中。
三个动态链接库
Windows操作系统核心有三个动态链接库(Kernel32.dll, User32.dll,Gdi32.dll),这些动态链接库构成了Win32 API函数。
1. Windows内核库(Kernel32.dll) 内核库中的函数用于处理操作系统功能的所有核心工作,例如多任务管理、
内存管理等。另外内核库还管理系统注册表。 2. Windows用户界面管理库(User32.dll)

顾名思义,图形设备接口是与图形界面有关的,因此这些
函数的使用要在图形用户界面下操作。即必须建立基于Win32的应
用程序,建立的步骤如4.4节所示。

图形设备接口的函数是包含在Windows图形设备界面库——
Gdi32.dll中。
Visual C++
5.1.4 Windows API分类(续)
3.用户接口服务
本篇的后多半部分虽然采用的是相对比较简单的MFC 编程,但使用底层的API函数编写程序可以看到许多MFC 编程看不到的东西,从而对Windows的内部运作有更深入 的了解。进行API编程,要求用户对Windows环境比较熟 悉,并且熟悉C语言。在API编程中用到大量的有关操作 系统的结构体变量和控制操作系统的函数,当在使用 API函数遇到问题时,可以随时查阅Windows的API文档, 它位于MSDN的Platform SDK部分。
/*目标文件存在时的操作模式, 为 true时 , 函数调用失败, 为 False时, 现有文件将被覆盖*/ ) ; 文 件 移 动 和 文 件 删 除 的 API函数是MoveFileEx()和 DeleteFile() 【例5-1】调用API函数CopyFile实现文件拷贝实例。 Windows的内核功能的实现不一定要在Windows的图形界面下完成,在 字符方式下也可以。由于目前Windows图形用户接口程序的开发还没有 讲(5.4节和5.5节中讲),并且我们目前掌握的重点是利用API函数实 现Windows内核功能的演示,所以下面的程序仍然是字符界面下的单文 件控制台工程,该程序的主文件的名称为FileCopy.cpp。
Visual C++
5.2 内核服务API函数的使用
内核服务是最能体现API函数威力的地方,通过这些函数,用 户能够使用操作系统内核所提供的核心功能。操作系统的进程管 理、文件管理、内存管理都是属于内核的功能。
1. 文件管理内核服务 2. 进程操作 3. 计算机系统信息操作
Visual C++
5.2.1 文件管理内核服务
Windows三个核心库中的API函数的原型声名在windows.h中有说明,这就是我们在 编写Win32应用程序时要在程序开头放#include “windows.h”语句的原因。
Visual C++
5.1.4 Windows API分类
■ 根据Windows API函数完成的功能,可以将其分为如下的类 别:
网络服务的函数是在网络接口函数库——Mpr.dll、Wininet.dll和 Winsock32.dll中。 5.多媒体服务
多媒体技术是指利用计算机综合处理多媒体信息——文本、图形、 图象和声音等,使多种信息建立逻辑连接,集成为一个系统并具有交 互性。多媒体服务提供了数字音频、视频、图形、图象等服务。 该服务的函数主要包含在多媒体函数库——Winmm.dll中。
1.内核服务 通过内核服务函数,应用程序可以使用计算机中的资源和操作系统
的特性,例如内存,文件系统、设备、进程、线程等。拿一个简单的文 件输入输出函数来说,通过这些函数,程序员可以存取本地计算机或网 络中某台计算机中的文件、目录、输入输出设备,并且这些文件函数支 持各种各样的文件系统,包括FAT、NTFS的文件系统。
事实上,任何开发工具提供的类库和构件都是架构在Win32 API函数基础上,是封装了的API函数集合。这些类库和构件简化 了程序的开发,但其功能有限。在实际应用中,如果我们希望开发 出更灵活、更实用、更具效率的程序时,则必须要涉及直接使用 API函数。虽然类库和构件使应用程序的开发简单了,但它们只提 供Windows的常用的一般功能,对于比较复杂和特殊的功能来说, 使用类库和构件中提供的方法是非常难以实现的,这时就需要直接 调用特定的API函数。
Visual C++
5.1.4 WindowsAPI分类(续)
6. 客户/服务方式存取服务
在客户/服务方式存取模式中,客户可以连接到服务器上以使用服 务器的功能和数据,服务器通过客户端的标识和权限来决定客户端可 以使用的功能。Win2K提供了一套函数来限制和允许客户端对服务端的 访问。这些函数扩展了Win2k的存取控制模型来使用服务端的私有对象 和使用服务端的功能。客户/ 服务方式存取服务又称操作系统高级编 程接口,这些函数包含在高级编程接口函数库——Advapi32.dll中。
使用Win32 API,应用程序可以充分挖掘出Windows 32位
操作系统的潜力,Microsoft的所有32位平台都支持统一的API, 包括函数、结构、消息、宏及接口。使用Win32 API,不但可 以开发出在各种平台上都能运行的应用程序,而且还可以充分 利用每个平台上特有的功能和属性。
5.1.3 Windows核心——Visual C++
上时,这就是GDI的功劳。它提供了在显示器、打印机或其它设备
上生成图形的函数与相关的数据结构。利用GDI函数,你可以画直
线、曲线、文本、位图等。你还可以使用各种各样的绘图对象如
笔、画刷、字体等,使得所绘制的图形更加丰富多彩。另外, Windows本身也是通过GDI来绘制其用户界面,包括窗口、菜单和 对话框。
用户接口服务函数可以创建和使用Windows来显示输出、提示用户 输入和执行与用户交互的任务。用户接口服务是通过一些常见的 Windows对象来实现的,例如按钮、组合框、编辑框、菜单、键盘输入、 定时器等。
用户接口服务的函数是在Windows用户界面管理库——User32.dll中。
4.网络服务
网络服务允许分布在网络中不同计算机上的应用程序进行通讯。通 过这些函数可以创建和管理共享资源,例如共享目录和网络打印机。
1 . 文件操作
Visual C++
API为一般的文件操作提供了三个函数:移动、复制和删除。
文件拷贝的API函数如下所示:
BOOL CopyFile( //从源文件向目标文件复制内容 LPCTSTR lpExistingFileName, // 源文件名称 LPCTSTR lpNewFileName, // 目标文件名称 BOOL bFailIfExists
相关文档
最新文档