什么是API有何用

什么是API有何用,第1张

分类: 电脑/网络

解析:

api

API(Advanced Programmers Interface,高级程序员接口)(注:API实际是指Application Programming Interface,应用程序编程接口此处疑为原文错误,不过在VB中也可以这么说吧!)是一套用来控制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提出的标准。

API还有一种含意:空气污染指数。【英文 air pollution index 的缩写】

C#程序封装成API接口这个说法不太具体,有很多方案的,前提是你有程序的源代码,比如:

做成DLL。VS可以导出为动态链接库的,其他程序有你的dll就可以调用接口,需要具体查看文档 *** 作步骤。

做成Web Service。VS支持将函数用SOAP协议封装,通过网络暴露接口,其他程序也通过SOAP协议来访问

如果没有源代码,那就另当别论了。

API(美国石油学会)标准是国际上比较通用的润滑油质量等级标准,由两个字母定义的级别,表明了机油的质量水平和适合的发动机类型。第一个字母"S"代表其适用于"火花点火"也就是汽油发动机。第一个字母"C"代表其为"压缩点火"即适用于柴油发动机。第二个字母代表了在不同类别中的性能从A,B,C,……依字母顺序上升,字母越靠后,等级越高。目前汽油机油的最高级别为SN,柴油机油的最高级别为CJ-4。例如道达尔快驰90005W40SN这款油品就是符合APISN的标准,是目前API最高质量级别。

API和ACEA分别代表美国石油协会和欧洲汽车制造商协会。

API标准用字母“S”表示汽油发动机,“C”表示柴油发动机。紧跟其后的字母在字母表中的顺序越靠后,表示该润滑油的等级越高,质量越好。而现在在API标准中,汽机油级别最高的是SN。

ACEA等级中,A代表轻型汽油发动机油、B代表轻型和小型柴油发动机油、E代表重载柴油发动机油。其中A1和B1用于一般燃料功效和低粘性的用油,A3和B3是指定为新型发动机和长效的用油。B4指定为B类直喷柴油发动机的用油,并且引入了A5和B5分类以突出燃油经济性。

最后再举例个例子吧,像埃尔夫欧风900系列润滑油这种全合成旗舰产品,API等级是SN,ACEA等级是A3/B4,已经是市面上相当高端的油品,对于汽车的保护可以说是十分极致。

扩展资料

APISG代表的是润滑油的质量级别,是由美国石油学API(AmericanPetroleumInstitute)组织制定的针对润滑油的一个质量标准。按照发动机所用燃料不同分为柴机油和汽机油.级别由低到高分为SC、SD、SE、SF、SG、SH、SJ、SL、SM(sm为最高级别)cf代表柴油机也能用(cf是柴油发动机油的质量标准)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11330656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存