Windows 应用程序编程接口API (2).ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:66 大小:1.1MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

Windows 应用程序编程接口API (2).ppt

Windows应用程序编程接口API(2).ppt

预览

免费试读已结束,剩余 56 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第5章Windows应用程序编程接口第5章目录5.1API概述WindowsAPI编程是一种原始的开发Windows应用程序模式,它主要使用的是C语言、少量的C++通用类及“原始”的Windows应用程序编程接口API(ApplicationProgrammingInterface)。这些函数都是比较底层的函数,其地位大致相当于字符界面环境下C语言的标准库函数,只不过其运行环境为Windows的图形界面环境。本篇的后多半部分虽然采用的是相对比较简单的MFC编程,但使用底层的API函数编写程序可以看到许多MFC编程看不到的东西,从而对Windows的内部运作有更深入的了解。进行API编程,要求用户对Windows环境比较熟悉,并且熟悉C语言。在API编程中用到大量的有关操作系统的结构体变量和控制操作系统的函数,当在使用API函数遇到问题时,可以随时查阅Windows的API文档,它位于MSDN的PlatformSDK部分。Windows操作系统向程序员提供了可以实现开启窗口、绘制图形,使用系统各种设备等的一组函数服务,称之为ApplicationProgrammingInterface(应用程序编程接口),即API函数。利用VC进行Windows应用程序的开发,除了用到各种.h头文件中的库函数及数据结构外,还需要使用WindowsSDK(SoftwareDevelopmentKit,软件开发工具包)提供的使用于Windows应用程序的特殊库函数和数据结构、语句、文件结构。所有这些内容组成了Windows应用程序设计接口API。使用Win32API,应用程序可以充分挖掘出Windows32位操作系统的潜力,Microsoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用Win32API,不但可以开发出在各种平台上都能运行的应用程序,而且还可以充分利用每个平台上特有的功能和属性。5.1.3Windows核心——三个动态链接库5.1.4WindowsAPI分类5.1.4WindowsAPI分类(续)5.1.4WindowsAPI分类(续)5.1.4WindowsAPI分类(续)5.1.4WindowsAPI分类(续)5.1.5操作系统的认识5.2内核服务API函数的使用VC下提供了对文件操作的四种方式:(1)使用C语言中的fopen()、fprintf()、fread()等基本的函数进行文件操作;(2)使用C++中的流式文件接口fstream中的函数进行操作;(3)使用面向对象的类CFile进行操作;(4)使用有关的文件API进行操作。API为一般的文件操作提供了三个函数:移动、复制和删除。文件拷贝的API函数如下所示:BOOLCopyFile(//从源文件向目标文件复制内容LPCTSTRlpExistingFileName,//源文件名称LPCTSTRlpNewFileName,//目标文件名称BOOLbFailIfExists//目标文件存在时的操作模式,为true时,函数调用失败,为False//时,现有文件将被覆盖);文件移动和文件删除的API函数是MoveFileEx()和DeleteFile()【例5-1】调用API函数CopyFile实现文件拷贝实例。Windows的内核功能的实现不一定要在Windows的图形界面下完成,在字符方式下也可以。由于目前Windows图形用户接口程序的开发还没有讲(5.4节和5.5节中讲),并且我们目前掌握的重点是利用API函数实现Windows内核功能的演示,所以下面的程序仍然是字符界面下的单文件控制台工程,该程序的主文件的名称为FileCopy.cpp。#include<windows.h>//windows操作系统API函数的头文件#include<iostream.h>voidmain(){charSourceFileName[MAX_PATH];charDestFileName[MAX_PATH];BOOLSuccess;cout<<"请输入待拷贝的源文件的名称\n";cin>>SourceFileName;cout<<"请输入待拷贝的目标文件的名称\n";cin>>DestFileName;Success=CopyFile(SourceFileName,DestFileName,TRUE);//调用API函数CopyFile实现文件拷贝if(!Success)cout<<"拷贝失败,错误的代码为:"<<GetLastError()<<endl;//调用API函数GetLastError()求出错的代码elsecout<<"文件拷贝成功\n";}文件移动和文件删