购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.1 Windows API简介

什么是Windows API?

简单说来,Windows API即为Microsoft 32位平台的应用程序编程接口,所有在Win32平台上运行的应用程序都可以调用这些函数。用户的每个动作都会引发一个或几个函数的运行,以告诉Windows发生了什么。

3.1.1 Windows API概述

具体来说,API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是向应用程序与开发人员提供基于某软件或硬件的访问一组例程的能力,而又无须访问源码,或理解内部工作机制的细节。Windows这个多作业系统除了可以协调应用程序的执行、内存分配、资源管理之外,还是一个很大的服务中心,可以调用服务中心的各种服务。Windows可以帮助应用程序达到开启视窗、描绘图形、使用周边设备等目的。这些服务就是一些函数,Windows留给开发人员的一些函数接口。

3.1.2 Windows API分类

Windows具有上千个API函数,包含了各种窗口类和系统资源。利用这些函数,可以编写出常见的具有Windows风格的程序。利用高级语言,能直接或间接地应用API进行应用程序的开发。

上千个API啊,这么多,俺老张可记不住啊!

没有你想象的那么复杂,Windows已经把它们分为了几类,非常容易掌握。

都有哪几类呢?

标准的Win32 API函数可以分为几大类:窗口管理、窗口通用控制、Shell特性类、图形设备接口(GDI)、系统服务、国际特性和网络服务。我把每一类具体解释下吧,免得你搞不懂。

(1)窗口管理

窗口管理函数向应用程序提供了一些创建和管理用户界面的方法。开发人员可以使用窗口管理函数,创建和使用窗口来显示输出、提示用户进行输入,以及完成其他一些与用户进行交互所需的工作。大多数应用程序都至少要创建一个窗口。应用程序通过创建窗口类及相应的窗口过程来定义它们所用窗口的外观和行为。窗口类可标识窗口的默认属性,比如窗口是否接受双击鼠标的操作,或是否带有菜单等。窗口过程中包含的代码用于定义窗口的行为、完成所需的任务,以及处理用户的输入。窗口管理函数还提供了其他一些与窗口有关的特性,比如插入标记(Caret)、剪贴板、光标、挂钩(Hook)、图标及菜单等函数。

(2)窗口通用控制类

系统SHELL提供了一些控制,使用这些控制可以使窗口具有与众不同的外观,通用控制是由通用控制库COMCTL32.DLL提供的。

(3)Shell特性类

应用程序可以使用这些类来增强系统各方面的功能。

(4)图形设备接口(GDI)

该接口提供了一系列的函数和相关的结构,应用程序可以使用它们在显示器、打印机或其他设备上生成图形化的输出结果。使用GDI函数可以绘制直线、曲线、闭合图形、路径、文本及位图图像。所绘制的图形的颜色和风格依赖于所创建的绘图对象,即画笔、笔刷和字体。可以使用画笔来绘制直线和曲线,使用笔刷来填充闭合图形的内部,使用字体来书写文本。

(5)系统服务

该类函数为应用程序提供了访问计算机资源及底层操作系统特性的手段,比如访问内存、文件系统、设备、进程和线程。应用程序使用系统服务函数来管理和监视它所需要的资源。例如,应用程序可使用内存管理函数来分配和释放内存,使用进程管理和同步函数来启动和调整多个应用程序或在一个应用程序中运行的多个线程的操作。

系统服务函数提供了访问文件、目录及输入输出(I/O)设备的手段。应用程序使用文件I/O函数可以访问保存在指定计算机,以及网络计算机磁盘和其他存储设备上的文件和目录。这些函数支持各种文件系统,从FAT文件系统、CD-ROM文件系统(CDFS)到NTFS。

系统访问函数为应用程序提供了一些可以与其他应用程序共享代码或信息的方法。使用系统服务函数,可以访问有关系统和其他应用程序的信息。应用程序使用系统服务函数,可以处理执行过程中的一些特殊情况,比如错误处理、事件日志、异常处理以及一些可用于调试和提高性能的属性。系统服务函数还提供了一些特性,可用于创建其他类型的应用程序,比如控制台应用程序和服务。

(6)国际特性

这些特性有助于用户编写国际化的应用程序。Unicode字符集使用16位的字符值来表示计算过程中所用到的字符,比如各种符号及很多编程语言。国家语言支持(NLS)函数可帮助用户将应用程序本地化;输入方法编辑器(IME)函数(在Windows亚洲版中可用)可帮助用户输入包含Unicode和DCBS字符的文本。

(7)网络服务

允许网络上的不同计算机之间的不同应用程序进行通信,用于在各计算机上创建和管理共享资源的连接,如共享目录和网络打印机。

网络服务接口主要包含Windows网络函数、Windows套接字(Socket)、NetBIOS、RAS、SNMP、Net函数和网络DDE。

张将军!张黑子!

干啥!

你睡觉就睡嘛,干嘛让口水把书打湿了。

你管天管地,难道还管俺老张睡觉流口水!

但是那本书是我的。

呃,我想起了,我现在只是了解了有API这个东西,但是具体怎么使用还请军师明示。

又转移话题……

3.1.3 使用Windows API

传统的Windows编程主要是利用API函数,而Windows API是在以C语言作为主要通用语言的时代开发的,因此经常用来在Windows和应用程序之间传送数据的是结构体。调用API函数的方法和平常调用函数的方法一致,要注意的是API函数的参数较为规范。在使用API的时候,经常看到头文件中包含“Windows.h”,该文件定义了Windows应用程序中包含的种类繁多的数据类型。这些数据类型,经常作为API函数的参数或者返回值。

空说无凭,军师就写个代码让俺瞅瞅呗。

那我就通过一个简单的例子来说明Windows API的使用方法。

1)启动Visual C++ 2008,通过执行“文件”→“新建”→“项目”命令,在弹出的对话框中选择“Win32项目”选项,项目名称为“UseAPI”。在随后的应用程序向导中选择“控制台应用程序”选项,且设置为“空项目”。

2)为工程添加资源文件“UseMain.cpp”,其代码如下。

3)利用快捷键“F5”编译调试工程,使用API显示提示对话框,如图3.1所示。

图3.1

太神奇了,军师果然神通广大,一个MessageBox()就超过了俺以前写的所有的代码。

这个可是API的功劳啊,所以你一定要认真研习之。 Znn4orjiwmG6mGNwHPyTWHrAbvbyGqxEtXbvpJ9QVUV4IFb6RqykmK0vfJrPJNFF

点击中间区域
呼出菜单
上一章
目录
下一章
×