APIT INTRODUCT

来源:互联网 发布:银行业 人员数据 编辑:程序博客网 时间:2024/04/28 00:29

一、什么是Windows API?

  1.什么是Windows API?

  Windows 这个多作业系统除了协调应用程式的执行、分配内存、管理系统资源…之外, 她同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备…等目的,由於这些函数服务的对象是应用程式(Application), 所以便称之为 Application Programming Interface,简称 API 函数。WIN32 API也就是MicrosoftWindows 32位平台的应用程序编程接口。

  凡是在 Windows 工作环境底下执行的应用程式, 都可以调用Windows API。

  2.Windows API的历史与现状

  当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS平台下的应用程序成为人们的需要。而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。

  但是,没有合适的Windows编程平台,程序员想编写具有Windows风格的软件,必须借助API,API也因此被赋予至高无上的地位。那时的WINDOWS程序开发还是比较复杂的工作,程序员必须熟记一大堆常用的API函数,而且还得对WINDOWS操作系统有深入的了解。然而随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“即见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序。

  这些优秀可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32 API函数基础之上的,是封装了的API函数的集合。它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程。有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节。

  实际上如果我们要开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数,虽然类库和控件使应用程序的开发简单的多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现。

  这也是API函数使用的场合,所以我们对待API函数不必刻意去研究每一个函数的用法,那也是不现实的(能用得到的API函数有几千个呢)。正如某位大虾所说:API不要去学,在需要的时候去查API帮助就足够了。但是,许多API函数令人难以理解,易于误用,还会导致出错,这一切都阻碍了它的推广。本专题就是想帮助那些想快速掌握API函数用法的同志们。通过对API函数的分类,结合一些有趣的实例,应该可以达到快速掌握的目的。

----------------------------------------------------------------------------------------------------------------------------------------------

所谓API本来是为C和C++程序员写的。API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95和Windows NT操作系统上的应用程序。

 

API是Application Programming Interface的缩写,也就是应用程序调用系统功能的接口。Windows API主要包括系统定义的函数、消息及与之相关的数据类型。我们使用各种开发工具归根结底都是和API打交道。但是API本身比较难掌握,所以开发工具都提供了各种可视的或面向对象的手段,如控件、类等,来使用户即使不太了解API,也可以编写Windows程序。但是这些手段是有限的,不可能包括API的所有方面。所以一些复杂的功能仍然需要调用API来实现。

-----------------------------------------------------------------------------------

发贴心情
什么是API函数
Win32 API即为Windows应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。

  早期的PC机内存非常少,Windows的设计者们不仅要把大量的代码和资源放入,而且还要留出足够的空间让应用程序运行,解决这种矛盾的方法就是通过让多个程序共享常用的代码来实现,这些被共享的代码就是今天所说的API函数。

  随着软件技术的不断发展,在Windows平台上出现了很多优秀的可视化编程环境,程序员可以采用“所见即所得”的编程方式来开发具有精美用户界面和功能的应用程序。这些可视化编程环境操作简便、界面友好,比如:Visual C++、Delphi和Visual Basic等。在这些工具中提供了大量的控件,实现了API的部分功能,加速了Windows应用程序的开发。但程序员要想开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数。


  API函数的分类


表1

分类

单元

功能及库文件

基本管理

windows

操作系统的基本功能,提供分配内存、
管理任务、装入资源、文件操作等

shell例程

shellapi

win32提供的外壳例程,
如加载其它程序、管理登录等

mci接口

mmsystem

多媒体mci编程接口(winmm.dll)

注册表管理

regstr

win32系统中注册表的管理

消息传送接口

mapi

微软消息传送系统的编程接口(mapi32.dll)

winsocket

winsock

winsocket网络编程接口(wsock32.dll)

标准对话框

comdlg

win32的标准对话框,如打开文件、
打印等(comdlg32.dll)

activex

activex

对象连接与嵌入ole函数

win32外壳扩展

shlobj

针对系统外壳的编程接口,
对资源管理器的某些功能或对象进行扩展


  API函数按不同功能被存放在不同的动态链接库文件中,这些动态链接库文件一般是以DLL为扩展名。在表1中,列举出了编程时较常用的几大类API函数及其主要功能、库文件名和对应的Delphi单元。

  Delphi调用API函数实例

  Delphi中定义了相应单元,给出了所有Win32 API函数的接口。Delphi调用API函数非常简单,甚至不需要声明外部引用,只需将使用的单元名放在Uses子句中就可以,其它的工作全部由系统定义的单元完成。下面,我们给出几个Delphi中使用API函数的实例,帮助大家理解。

  1、在“文档”菜单中添加新项及清空项目

  在Windows的开始菜单中有一个文档菜单,保存了最近处理过的文档信息,如何增加新项或将其清空呢?我们可以利用API函数SHAddtoRecentDocs()来实现,它定义在Shlobj单元中,使用前要先在Uses中加以说明。下面为处理方法:

  uses shlobj;

  procedure TForm1.Button1Click(Sender: TObject);

  begin

   SHAddtoRecentDocs(SHARD_PATH, Pchar('c:/mydir/aaa.txt')); //增加新的一项

  end;

  procedure TForm1.Button2Click(Sender: TObject);

  begin

   SHAddtoRecentDocs(SHARD_PATH, nil); //清空文档菜单

  end;

  2、使窗口标题栏闪烁

  在Windows中,常用窗口标题栏的闪烁来提醒用户,向你的程序中加入这一功能一定很有意思。API函数Flash Windows( )可以使一个特定的窗口闪动一次,如果将其放在计时器中调用,标题栏闪烁就很容易实现。

  procedure TForm1.Button1Click(Sender: TObject);

  begin

   Timer1.Interval:=500; //计时器的间隔时间,每500毫秒触发一次

   Timer1.Enabled:=Not Timer1.Enabled; //切换计时器的激活或停止状态

  end;

  procedure TForm1.Timer1Timer(Sender: TObject);

  begin

   FlashWindow(Form1.Handle,TRUE); //闪烁标题栏

  end;

  FlashWindows()有两个参数:第一个参数指明窗口的句柄;第二个参数指定窗口是闪动还是恢复始状态。这个函数定义在Windows单元中,是Delphi的缺省单元,故不必再用Uses子句进行说明。

  3、在程序中播放WAV声音文件

  Windows启动时那声嘹亮的号角声是否让你感到振奋。OK!让我们在自己的程序中来实现它。仅仅播放一个WAV声音文件,当然不需要劳驾MediaPlayer构件,API函数SndPlaySound()就可以很好地完成这一工作。它定义在MMSystem单元中,有两个参数:第一个指明WAV文件的路径、文件名;第二个指明播放方式。实例如下:

  uses MMSystem;

  procedure TForm1.FormCreate(Sender: TObject);

  begin

   SndPlaySound('c:/windows/media/tada.wav',SND_ASYNC)

  end;

-------------------------------------------------------------------------------------

作为一个编程初学者来说,API函数也许是一个时常耳闻却感觉有些神秘的东西。单看它的复杂语法,就足令人望而生畏,但是任何事物在我们深入了解它之前,总是会有这种感觉的。我们这篇API入门教程的目的,就是要把API函数的来龙去脉告诉大家,破除对API函数的畏惧,使它成为我们编程的好助手。

大家可能在许多书上看到过API的英文全称(Application Programming Interface),WIN32 API也就是MicrosoftWindows 32位平台的应用程序编程接口。对这个定义的理解,需要追溯到操作系统的发展历史上,当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS平台下的应用程序成为人们的需要。而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。

但是,那时的WINDOWS程序开发还是比较复杂的工作,程序员必须熟记一大堆常用的API函数,而且还得对WINDOWS操作系统有深入的了解。然而随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“即见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序。

这些优秀可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32 API函数基础之上的,是封装了的API函数的集合。它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程。有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节。

实际上如果我们要开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数,虽然类库和控件使应用程序的开发简单的多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现。

这也是API函数使用的场合,所以我们对待API函数不必刻来研究每一个函数的用法,那也是不现实的(能用的到的API函数有几千个呢)。正如某位大虾所说:API不要去学,在需要的时候去查API帮助就足够了。
原创粉丝点击