什么是API
答案:2 悬赏:10 手机版
解决时间 2021-02-25 01:40
- 提问者网友:且恨且铭记
- 2021-02-24 19:02
什么是API
最佳答案
- 五星知识达人网友:愁杀梦里人
- 2021-02-24 20:30
API (Application Programming Interface)
所谓API本来是为C和C++程序员写的。API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95 和Windows NT操作系统上的应用程序。可以说,如果你曾经学过VC,那么API对你来说不是什么问题。但是如果你没有学过VC,或者你对Windows95的结构体系不熟悉,那么可以说,学习API将是一件很辛苦的事情。
如果你打开WINDOWS的SYSTEM文件夹,你可以发现其中有很多附加名为DLL的文件。一个DLL中包含的API函数并不只是一个,数十个,甚至是数百个。我们能都掌握它嘛?回答是否定的∶不可能掌握。但实际上,我们真的没必要都掌握,只要重点掌握Windos系统本身自带的API函数就可以了。但,在其中还应当抛开掉同VB本身自有的函数重复的函数。如,VB 的etAttr命令可以获得文件属性,SetAttr可以设置文件属性。对API来讲也有对应的函数
GetFileAttributes 和SetFileAttributes,性能都差不多。如此地一算,剩下来的也就5、600个。是的,也不少。但,我可以敢跟你说,只要你熟悉地掌握 100个,那么你的编程水平比现在高出至少要两倍。尽管人们说VB和WINDOWS具有密切的关系,但我认为,API更接近
WINDOWS。如果你学会了API,首要的收获便是对WINDOWS体系结构的认识。这个收获是来自不易的。
所谓API本来是为C和C++程序员写的。API说来说去,就是一种函数,他们包含在一个附加名为DLL的动态连接库文件中。用标准的定义来讲,API就是Windows的32位应用程序编程接口,是一系列很复杂的函数,消息和结构,它使编程人员可以用不同类型的编程语言编制出的运行在Windows95 和Windows NT操作系统上的应用程序。可以说,如果你曾经学过VC,那么API对你来说不是什么问题。但是如果你没有学过VC,或者你对Windows95的结构体系不熟悉,那么可以说,学习API将是一件很辛苦的事情。
如果你打开WINDOWS的SYSTEM文件夹,你可以发现其中有很多附加名为DLL的文件。一个DLL中包含的API函数并不只是一个,数十个,甚至是数百个。我们能都掌握它嘛?回答是否定的∶不可能掌握。但实际上,我们真的没必要都掌握,只要重点掌握Windos系统本身自带的API函数就可以了。但,在其中还应当抛开掉同VB本身自有的函数重复的函数。如,VB 的etAttr命令可以获得文件属性,SetAttr可以设置文件属性。对API来讲也有对应的函数
GetFileAttributes 和SetFileAttributes,性能都差不多。如此地一算,剩下来的也就5、600个。是的,也不少。但,我可以敢跟你说,只要你熟悉地掌握 100个,那么你的编程水平比现在高出至少要两倍。尽管人们说VB和WINDOWS具有密切的关系,但我认为,API更接近
WINDOWS。如果你学会了API,首要的收获便是对WINDOWS体系结构的认识。这个收获是来自不易的。
全部回答
- 1楼网友:第四晚心情
- 2021-02-24 21:58
api(application programming interface,应用程序编程接口)是一套用来控制windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的windows函数.用户的每个动作都会引发一个或几个函数的运行以告诉windows发生了什么. 这在某种程度上很象windows的天然代码.其他的语言只是提供一种能自动而且更容易的访问api的方法.vb在这方面作了很多工作.它完全隐藏了api并且提供了在windows环境下编程的一种完全不同的方法. 这也就是说,你用vb写出的每行代码都会被vb转换为api函数传递给windows.例如,form1.print...vb 将会以一定的参数(你的代码中提供的,或是默认参数)调用textout 这个api函数. 同样,当你点击窗体上的一个按钮时,windows会发送一个消息给窗体(这对于你来说是隐藏的),vb获取这个调用并经过分析后生成一个特定事件(button_click). api函数包含在windows系统目录下的动态连接库文件中(如user32.dll,gdi32.dll,shell32.dll...). api 声明 正如在"什么是api"中所说,api函数包含在位于系统目录下的dll文件中.你可以自己输入api函数的声明,但vb提供了一种更简单的方法,即使用api text viewer. 要想在你的工程中声明api函数,只需运行api text viewer,打开win32api.txt(或.mdb如果你已经把它转换成了数据库的话,这样可以加快速度.注:微软的这个文件有很多的不足,你可以试一下本站提供下载的api32.txt),选择"声明",找到所需函数,点击"添加(add)"并"复制(copy)",然后粘贴(paste)到你的工程里.使用预定义的常量和类型也是同样的方法. 你将会遇到一些问题: 假设你想在你的窗体模块中声明一个函数.粘贴然后运行,vb会告诉你:编译错误...declare 语句不允许作为类或对象模块中的 public 成员...看起来很糟糕,其实你需要做的只是在声明前面添加一个private(如 private declare function...).--不要忘了,可是这将使该函数只在该窗体模块可用. 在有些情况下,你会得到"不明确的名称"这样的提示,这是因为函数.常量或其他的什么东西共用了一个名称.由于绝大多数的函数(也可能是全部,我没有验证过)都进行了别名化,亦即意味着你可以通过alias子句使用其它的而不是他们原有的名称,你只需简单地改变一下函数名称而它仍然可以正常运行. 你可以通过查看vb的declare语句帮助主题来获取有关alias的详细说明. 消息(messages) 好了,现在你已经知道什么是api函数了,但你也一定听说过消息(如果你还没有,你很快就会)并且想知道它是什么.消息是windows告诉你的程序发生了哪些事件或要求执行特定操作的基本方法.例如,当用户点击一个按钮,移动鼠标,或是向文本框中键入文字时,一条消息就会被发送给你的窗体. 所有发送的消息都有四个参数--一个窗口句柄(hwnd),一个消息编号(msg)还有两个32位长度(long)的参数. hwnd即要接受消息的一个窗口的句柄,msg即消息的标识符(编号).该标识符是指引发消息的动作类型(如移动鼠标),另外两个参数是该消息的附加参数(例如当鼠标移动时光标的当前位置) 但是,当消息发送给你时你为什么看不到呢--就象有人在偷你的信一样?请先别恼火,让我告诉你. 小偷其实是visual basic.但它并没有偷走你的信,而是在阅读了之后挑出重要的以一种好的方式告诉你.这种方式就是你代码中的事件(event). 这样,当用户在你的窗体上移动鼠标时,windows会发送一条wm_mousemove消息给你的窗口,vb得到这条消息以及它的参数并运行你在事件mousemove中的代码,同时vb会把这条消息的第二个32位数(它包含了x,y坐标,单位为像素(pixel),每个位16位)转换为两个单精度数,单位为缇(twip). 现在,如果你需要光标坐标的像素表示,然而vb已经把它转换成了缇,因此你需要重新把它转换为以像素为单位.在这里,windows给了你所需要的,但vb"好意地"进行了转换而使你不得不重新转换.你可能会问--我难道不能自己接收消息吗?答案是肯定的,你可以使用一种叫做子类处理(subclass)的方法.但你除非必须否则最好不要使用,因为这与vb的安全程序设计有一点点的违背.(注:子类处理确实有很大的风险,但如果使用得当,是很有用处的.不过有一点一定要注意,即千万不要使用vb的断点调试功能,这可能会导致vb崩溃!) 需要补充说明的是:你可以发送消息给你自己的窗口或其他的窗口,只需调用sendmessage或postmessage(sendmessage会使接受到消息的窗口立刻处理消息,而postmessage是把消息发送到一个称为消息队列的队列中去,等候处理(它将会在该消息处理完后返回,例如有些延迟)).你必须制定接受消息的窗口的句柄,欲发送消息的编号(所有的消息的编号均为常量,你可以通过api text viewer查得)以及两个32位的参数。 api:应用程序接口(api:application program interface) 应用程序接口(api:application programming interface)是一组定义、程序及协议的集合,通过 api 接口实现计算机软件之间的相互通信。api 的一个主要功能是提供通用功能集。程序员通过使用 api 函数开发应用程序,从而可以避免编写无用程序,以减轻编程任务。 api 同时也是一种中间件,为各种不同平台提供数据共享。根据单个或分布式平台上不同软件应用程序间的数据共享性能,可以将 api 分为四种类型: 远程过程调用(rpc):通过作用在共享数据缓存器上的过程(或任务)实现程序间的通信。 标准查询语言(sql):是标准的访问数据的查询语言,通过通用数据库实现应用程序间的数据共享。 文件传输:文件传输通过发送格式化文件实现应用程序间数据共享。 信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享。 当前应用于 api 的标准包括 ansi 标准 sql api。另外还有一些应用于其它类型的标准尚在制定之中。api 可以应用于所有计算机平台和操作系统。这些 api 以不同的格式连接数据(如共享数据缓存器、数据库结构、文件框架)。每种数据格式要求以不同的数据命令和参数实现正确的数据通信,但同时也会产生不同类型的错误。因此,除了具备执行数据共享任务所需的知识以外,这些类型的 api 还必须解决很多网络参数问题和可能的差错条件,即每个应用程序都必须清楚自身是否有强大的性能支持程序间通信。相反由于这种 api 只处理一种信息格式,所以该情形下的信息交付 api 只提供较小的命令、网络参数以及差错条件子集。正因为如此,交付 api 方式大大降低了系统复杂性,所以当应用程序需要通过多个平台实现数据共享时,采用信息交付 api 类型是比较理想的选择。 api 与图形用户接口(gui)或命令接口有着鲜明的差别:api 接口属于一种操作系统或程序接口,而后两者都属于直接用户接口。 有时公司会将 api 作为其公共开放系统。也就是说,公司制定自己的系统接口标准,当需要执行系统整合、自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码,该接口标准被称之为开放式 api。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯