Api是什么意思?它怎么讀的?
來源:新能源網(wǎng)
時(shí)間:2024-08-17 12:06:36
熱度:
Api是什么意思?它怎么讀的?【專家解說】:API(Application Programming Interface,應(yīng)用程序編程接口)是一套用來控制Windows的各個(gè)部件(從
【專家解說】:API(Application Programming Interface,應(yīng)用程序編程接口)是一套用來控制Windows的各個(gè)部件(從桌面的外觀到為一個(gè)新進(jìn)程分配的內(nèi)存)的外觀和行為的一套預(yù)先定義的Windows函數(shù).用戶的每個(gè)動(dòng)作都會(huì)引發(fā)一個(gè)或幾個(gè)函數(shù)的運(yùn)行以告訴Windows發(fā)生了什么.
這在某種程度上很象Windows的天然代碼.其他的語言只是提供一種能自動(dòng)而且更容易的訪問API的方法.VB在這方面作了很多工作.它完全隱藏了API并且提供了在Windows環(huán)境下編程的一種完全不同的方法.
這也就是說,你用VB寫出的每行代碼都會(huì)被VB轉(zhuǎn)換為API函數(shù)傳遞給Windows.例如,Form1.Print...VB 將會(huì)以一定的參數(shù)(你的代碼中提供的,或是默認(rèn)參數(shù))調(diào)用TextOut 這個(gè)API函數(shù).
同樣,當(dāng)你點(diǎn)擊窗體上的一個(gè)按鈕時(shí),Windows會(huì)發(fā)送一個(gè)消息給窗體(這對(duì)于你來說是隱藏的),VB獲取這個(gè)調(diào)用并經(jīng)過分析后生成一個(gè)特定事件(Button_Click).
API函數(shù)包含在Windows系統(tǒng)目錄下的動(dòng)態(tài)連接庫文件中(如User32.dll,GDI32.dll,Shell32.dll...).
API 聲明
正如在"什么是API"中所說,API函數(shù)包含在位于系統(tǒng)目錄下的DLL文件中.你可以自己輸入API函數(shù)的聲明,但VB提供了一種更簡(jiǎn)單的方法,即使用API Text Viewer.
要想在你的工程中聲明API函數(shù),只需運(yùn)行API Text Viewer,打開Win32api.txt(或.MDB如果你已經(jīng)把它轉(zhuǎn)換成了數(shù)據(jù)庫的話,這樣可以加快速度.注:微軟的這個(gè)文件有很多的不足,你可以試一下本站提供下載的api32.txt),選擇"聲明",找到所需函數(shù),點(diǎn)擊"添加(Add)"并"復(fù)制(Copy)",然后粘貼(Paste)到你的工程里.使用預(yù)定義的常量和類型也是同樣的方法.
你將會(huì)遇到一些問題:
假設(shè)你想在你的窗體模塊中聲明一個(gè)函數(shù).粘貼然后運(yùn)行,VB會(huì)告訴你:編譯錯(cuò)誤...Declare 語句不允許作為類或?qū)ο竽K中的 Public 成員...看起來很糟糕,其實(shí)你需要做的只是在聲明前面添加一個(gè)Private(如 Private Declare Function...).--不要忘了,可是這將使該函數(shù)只在該窗體模塊可用.
在有些情況下,你會(huì)得到"不明確的名稱"這樣的提示,這是因?yàn)楹瘮?shù).常量或其他的什么東西共用了一個(gè)名稱.由于絕大多數(shù)的函數(shù)(也可能是全部,我沒有驗(yàn)證過)都進(jìn)行了別名化,亦即意味著你可以通過Alias子句使用其它的而不是他們?cè)械拿Q,你只需簡(jiǎn)單地改變一下函數(shù)名稱而它仍然可以正常運(yùn)行.
你可以通過查看VB的Declare語句幫助主題來獲取有關(guān)Alias的詳細(xì)說明.
消息(Messages)
好了,現(xiàn)在你已經(jīng)知道什么是API函數(shù)了,但你也一定聽說過消息(如果你還沒有,你很快就會(huì))并且想知道它是什么.消息是Windows告訴你的程序發(fā)生了哪些事件或要求執(zhí)行特定操作的基本方法.例如,當(dāng)用戶點(diǎn)擊一個(gè)按鈕,移動(dòng)鼠標(biāo),或是向文本框中鍵入文字時(shí),一條消息就會(huì)被發(fā)送給你的窗體.
所有發(fā)送的消息都有四個(gè)參數(shù)--一個(gè)窗口句柄(hwnd),一個(gè)消息編號(hào)(msg)還有兩個(gè)32位長度(Long)的參數(shù).
hwnd即要接受消息的一個(gè)窗口的句柄,msg即消息的標(biāo)識(shí)符(編號(hào)).該標(biāo)識(shí)符是指引發(fā)消息的動(dòng)作類型(如移動(dòng)鼠標(biāo)),另外兩個(gè)參數(shù)是該消息的附加參數(shù)(例如當(dāng)鼠標(biāo)移動(dòng)時(shí)光標(biāo)的當(dāng)前位置)
但是,當(dāng)消息發(fā)送給你時(shí)你為什么看不到呢--就象有人在偷你的信一樣?請(qǐng)先別惱火,讓我告訴你.
小偷其實(shí)是Visual Basic.但它并沒有偷走你的信,而是在閱讀了之后挑出重要的以一種好的方式告訴你.這種方式就是你代碼中的事件(Event).
這樣,當(dāng)用戶在你的窗體上移動(dòng)鼠標(biāo)時(shí),Windows會(huì)發(fā)送一條WM_MOUSEMOVE消息給你的窗口,VB得到這條消息以及它的參數(shù)并運(yùn)行你在事件MouseMove中的代碼,同時(shí)VB會(huì)把這條消息的第二個(gè)32位數(shù)(它包含了x,y坐標(biāo),單位為像素(Pixel),每個(gè)位16位)轉(zhuǎn)換為兩個(gè)單精度數(shù),單位為緹(Twip).
現(xiàn)在,如果你需要光標(biāo)坐標(biāo)的像素表示,然而VB已經(jīng)把它轉(zhuǎn)換成了緹,因此你需要重新把它轉(zhuǎn)換為以像素為單位.在這里,Windows給了你所需要的,但VB"好意地"進(jìn)行了轉(zhuǎn)換而使你不得不重新轉(zhuǎn)換.你可能會(huì)問--我難道不能自己接收消息嗎?答案是肯定的,你可以使用一種叫做子類處理(Subclass)的方法.但你除非必須否則最好不要使用,因?yàn)檫@與VB的安全程序設(shè)計(jì)有一點(diǎn)點(diǎn)的違背.(注:子類處理確實(shí)有很大的風(fēng)險(xiǎn),但如果使用得當(dāng),是很有用處的.不過有一點(diǎn)一定要注意,即千萬不要使用VB的斷點(diǎn)調(diào)試功能,這可能會(huì)導(dǎo)致VB崩潰!)
需要補(bǔ)充說明的是:你可以發(fā)送消息給你自己的窗口或其他的窗口,只需調(diào)用SendMessage或PostMessage(SendMessage會(huì)使接受到消息的窗口立刻處理消息,而PostMessage是把消息發(fā)送到一個(gè)稱為消息隊(duì)列的隊(duì)列中去,等候處理(它將會(huì)在該消息處理完后返回,例如有些延遲)).你必須制定接受消息的窗口的句柄,欲發(fā)送消息的編號(hào)(所有的消息的編號(hào)均為常量,你可以通過API Text Viewer查得)以及兩個(gè)32位的參數(shù)。
另一種含義:
1:美國石油協(xié)會(huì)(API:American Petrolenm Institute):
API610/682是機(jī)械密封的設(shè)計(jì)和選用標(biāo)準(zhǔn);
API676 轉(zhuǎn)子泵的標(biāo)準(zhǔn);
2:API還有一種含意:空氣污染指數(shù)?!居⑽?air pollution index 的縮寫】
3:在JAVA中,API除了有應(yīng)用“程序程序接口”的意思外,還特指JAVA API的說明文檔,也稱為JAVA幫助文檔。
4.API Q1質(zhì)量體系認(rèn)證是您向用戶證明您有一套API認(rèn)可的完善的質(zhì)量管理體系, 有些石油、天然氣設(shè)備制造商所生產(chǎn)的產(chǎn)品目前沒有所適用API會(huì)標(biāo)產(chǎn)品的規(guī)范對(duì)應(yīng), 但他們又想向用戶證明他們的產(chǎn)品或服務(wù)符合API標(biāo)準(zhǔn)的要求,所以API Q1質(zhì)量體系認(rèn)證可以幫您辦到。API Q1質(zhì)量體系認(rèn)證特別適用于那些所生產(chǎn)的產(chǎn)品沒有相應(yīng)的API會(huì)標(biāo)產(chǎn)品規(guī)范所對(duì)應(yīng)的石油、天然氣設(shè)備生產(chǎn)廠家, 或向石油、天然氣行業(yè)提供服務(wù)的公司。
另一種含義:
使用API(應(yīng)用編程接口,英文全稱:Application Programming Interface)構(gòu)建業(yè)務(wù)是實(shí)現(xiàn)開放式業(yè)務(wù)結(jié)構(gòu)的關(guān)鍵技術(shù),也是下一代網(wǎng)絡(luò)區(qū)別于傳統(tǒng)電信網(wǎng)的主要特點(diǎn)之一。目前,關(guān)于下一代網(wǎng)絡(luò)的開放式業(yè)務(wù)API標(biāo)準(zhǔn)主要包括:由Parlay組織、3GPP和ETSI SPAN共同制定的Parlay/OSA API以及由SUN公司在Java平臺(tái)上推出的JAIN API。
Parlay API是由Parlay組織定義的便于業(yè)務(wù)開發(fā)者快速創(chuàng)建電信業(yè)務(wù)的應(yīng)用編程接口,自1999年成立以來,Parlay組織已制定了4個(gè)版本的Parlay協(xié)議。開放式業(yè)務(wù)結(jié)構(gòu)(OSA)是3GPP制定的多媒體業(yè)務(wù)框架,選定Parlay作為其開放式業(yè)務(wù)接口API。兩者結(jié)合的Parlay/OSA API獨(dú)立于具體的實(shí)現(xiàn)技術(shù),可以應(yīng)用于固定網(wǎng)絡(luò)、移動(dòng)網(wǎng)絡(luò)以及下一代網(wǎng)絡(luò)的業(yè)務(wù)提供;獨(dú)立于具體的實(shí)現(xiàn)語言,可以用C、C++、Java等各種語言實(shí)現(xiàn);定義了完善的認(rèn)證和授權(quán)機(jī)制,以支持對(duì)第3方應(yīng)用的支持。
Parlay/OSA API位于由網(wǎng)絡(luò)運(yùn)營商管理的Parlay網(wǎng)關(guān)和由業(yè)務(wù)提供商管理的應(yīng)用服務(wù)器之間。Parlay網(wǎng)關(guān)對(duì)應(yīng)用服務(wù)器屏蔽了下層網(wǎng)絡(luò)的技術(shù)實(shí)現(xiàn)細(xì)節(jié),使得應(yīng)用服務(wù)器可以使用統(tǒng)一的方式對(duì)網(wǎng)絡(luò)能力進(jìn)行訪問。
Parlay/OSA API包括兩類接口:業(yè)務(wù)接口和框架接口。業(yè)務(wù)接口提供應(yīng)用訪問網(wǎng)絡(luò)能力和信息的接口,框架接口提供業(yè)務(wù)接口安全、管理所必需的支持能力。業(yè)務(wù)接口保證用戶能夠接入傳統(tǒng)網(wǎng)絡(luò),如呼叫控制、呼叫管理、發(fā)送消息、用戶交互等;框架接口提供的功能有:業(yè)務(wù)登記、業(yè)務(wù)預(yù)訂、業(yè)務(wù)發(fā)現(xiàn)、認(rèn)證、授權(quán)和綜合管理。
JAIN API和Parlay/OSA API設(shè)計(jì)思想相近,功能上具有互補(bǔ)性。它采用專一的Java語言實(shí)現(xiàn),并且定義了比較完備的訪問各種網(wǎng)絡(luò)的網(wǎng)絡(luò)協(xié)議API。目前Parlay/JAIN聯(lián)合工作組正在進(jìn)行兩者的融合工作。
熱門標(biāo)簽:原油
-
如何理解美國原油庫存變化與油價(jià)的關(guān)系?2024-08-17
-
墨西哥灣漏油事件加速了地球原油資源的耗盡,看來要不了幾年所有的燃油車輛均變成一堆堆廢鐵……2024-08-17
-
因國際原油價(jià)格上漲,93號(hào)汽油價(jià)格上調(diào)了5%,原來每升汽油5·8元,調(diào)價(jià)后每升是多少元?2024-08-17
-
為什么期貨評(píng)論上說原油價(jià)格與豆油價(jià)格有聯(lián)動(dòng)關(guān)系2024-08-17
-
中原油田在河南哪里?2024-08-17
-
國際原油下跌對(duì)中國石油股票利好?2024-08-17
-
50億立方米天然氣相當(dāng)于多少噸原油?2024-08-17
-
CO2和液化石油氣在原油的溶解度哪個(gè)大?2024-08-17
-
原油、輕油、重質(zhì)油和液化石油氣等物料裝車時(shí),其罐車裝滿系數(shù)分別是多少? ...2024-08-17
-
為什么原油價(jià)格持續(xù)大漲,對(duì)煤炭石油板塊會(huì)構(gòu)成利好?2024-08-17
-
1桶石油原油折合多少KG?可制多少液化石油氣?2024-08-17
-
誰知道國際原油價(jià)格后市走勢(shì)如何啊?2024-08-17
-
原油鐵礦石焦炭屬于什么2024-08-17
-
石油原油、石油液化氣、天然氣、煤炭、氫氣的熱值2024-08-17
-
國際原油價(jià)格和國內(nèi)的煤炭石油價(jià)格有沒有必然的聯(lián)系?2024-08-17