永发信息网

什么是API

答案:2  悬赏:10  手机版
解决时间 2021-02-25 01:40
什么是API
最佳答案
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(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。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
理线器应该套什么定额
迪士尼epe爬行垫怎么样
跪求!!!MD306L人机界面里面程序能不能下载
合肥工业大学信息与电教中心地址在哪,我要去
有什么仪器可以看到房间的人,也能读出人的思
在孩子教育的问题上.家庭希望获得那方面的信
集体合同的内容包括()。
求大神指教苹果蓝牙耳机充电多长时间
五菱荣光usb线怎么接
营顶茶场地址在哪,我要去那里办事
【有名的钢琴曲】著名钢琴曲《邀舞》的作者是
迷妄之塔在哪
格列佛游记中带有四字词语的句子
法不溯及有哪些例子
nerf犀牛和卡俄斯哪个好?
推荐资讯
嘴角有痣
请问黄家驹所在的乐队叫什么名字?成立于那年?
下列各组国家中,均为亚洲且人口超过一亿的国
阳光计划(语文)
女主名叫凌天籁,男主名叫帝泽,女主的哥哥叫
盛大上怎样用声望换声望令牌呀
灯光是什么
用过的朋友说说卧室矮床好吗
牛肉面实体店培训哪家好?
二减六分之五等于多少
全民无双赵云变身完涅盘还会变样子吗?
上海到桐庐开车怎么走最近
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?