百科解釋
API是一套用來控制Windows的各個部件(從桌面的外觀到為一個新進程分配的內(nèi)存)的外觀和行為的一套預(yù)先定義的Windows函數(shù).用戶的每個動作都會引發(fā)一個或幾個函數(shù)的運行以告訴Windows發(fā)生了什么.
這在某種程度上很象Windows的天然代碼.其他的語言只是提供一種能自動而且更容易的訪問API的方法.VB在這方面作了很多工作.它完全隱藏了API并且提供了在Windows環(huán)境下編程的一種完全不同的方法.
這也就是說,你用VB寫出的每行代碼都會被VB轉(zhuǎn)換為API函數(shù)傳遞給Windows.例如,Form1.Print...VB 將會以一定的參數(shù)(你的代碼中提供的,或是默認參數(shù))調(diào)用TextOut 這個API函數(shù).
同樣,當你點擊窗體上的一個按鈕時,Windows會發(fā)送一個消息給窗體(這對于你來說是隱藏的),VB獲取這個調(diào)用并經(jīng)過分析后生成一個特定事件(Button_Click).
API函數(shù)包含在Windows系統(tǒng)目錄下的動態(tài)連接庫文件中(如User32.dll,GDI32.dll,Shell32.dll...).
API 聲明
正如在"什么是API"中所說,API函數(shù)包含在位于系統(tǒng)目錄下的DLL文件中.你可以自己輸入API函數(shù)的聲明,但VB提供了一種更簡單的方法,即使用API Text Viewer.
要想在你的工程中聲明API函數(shù),只需運行API Text Viewer,打開Win32api.txt(或.MDB如果你已經(jīng)把它轉(zhuǎn)換成了數(shù)據(jù)庫的話,這樣可以加快速度.注:微軟的這個文件有很多的不足,你可以試一下本站提供下載的api32.txt),選擇"聲明",找到所需函數(shù),點擊"添加(Add)"并"復(fù)制(Copy)",然后粘貼(Paste)到你的工程里.使用預(yù)定義的常量和類型也是同樣的方法.
你將會遇到一些問題:
假設(shè)你想在你的窗體模塊中聲明一個函數(shù).粘貼然后運行,VB會告訴你:編譯錯誤...Declare 語句不允許作為類或?qū)ο竽K中的 Public 成員...看起來很糟糕,其實你需要做的只是在聲明前面添加一個Private(如 Private Declare Function...).--不要忘了,可是這將使該函數(shù)只在該窗體模塊可用.
在有些情況下,你會得到"不明確的名稱"這樣的提示,這是因為函數(shù).常量或其他的什么東西共用了一個名稱.由于絕大多數(shù)的函數(shù)(也可能是全部,我沒有驗證過)都進行了別名化,亦即意味著你可以通過Alias子句使用其它的而不是他們原有的名稱,你只需簡單地改變一下函數(shù)名稱而它仍然可以正常運行.
你可以通過查看VB的Declare語句幫助主題來獲取有關(guān)Alias的詳細說明.
消息(Messages)
好了,現(xiàn)在你已經(jīng)知道什么是API函數(shù)了,但你也一定聽說過消息(如果你還沒有,你很快就會)并且想知道它是什么.消息是Windows告訴你的程序發(fā)生了哪些事件或要求執(zhí)行特定操作的基本方法.例如,當用戶點擊一個按鈕,移動鼠標,或是向文本框中鍵入文字時,一條消息就會被發(fā)送給你的窗體.
所有發(fā)送的消息都有四個參數(shù)--一個窗口句柄(hwnd),一個消息編號(msg)還有兩個32位長度(Long)的參數(shù).
hwnd即要接受消息的一個窗口的句柄,msg即消息的標識符(編號).該標識符是指引發(fā)消息的動作類型(如移動鼠標),另外兩個參數(shù)是該消息的附加參數(shù)(例如當鼠標移動時光標的當前位置)
但是,當消息發(fā)送給你時你為什么看不到呢--就象有人在偷你的信一樣?請先別惱火,讓我告訴你.
小偷其實是Visual Basic.但它并沒有偷走你的信,而是在閱讀了之后挑出重要的以一種好的方式告訴你.這種方式就是你代碼中的事件(Event).
這樣,當用戶在你的窗體上移動鼠標時,Windows會發(fā)送一條WM_MOUSEMOVE消息給你的窗口,VB得到這條消息以及它的參數(shù)并運行你在事件MouseMove中的代碼,同時VB會把這條消息的第二個32位數(shù)(它包含了x,y坐標,單位為像素(Pixel),每個位16位)轉(zhuǎn)換為兩個單精度數(shù),單位為緹(Twip).
現(xiàn)在,如果你需要光標坐標的像素表示,然而VB已經(jīng)把它轉(zhuǎn)換成了緹,因此你需要重新把它轉(zhuǎn)換為以像素為單位.在這里,Windows給了你所需要的,但VB"好意地"進行了轉(zhuǎn)換而使你不得不重新轉(zhuǎn)換.你可能會問--我難道不能自己接收消息嗎?答案是肯定的,你可以使用一種叫做子類處理(Subclass)的方法.但你除非必須否則最好不要使用,因為這與VB的安全程序設(shè)計有一點點的違背.(注:子類處理確實有很大的風(fēng)險,但如果使用得當,是很有用處的.不過有一點一定要注意,即千萬不要使用VB的斷點調(diào)試功能,這可能會導(dǎo)致VB崩潰!)
需要補充說明的是:你可以發(fā)送消息給你自己的窗口或其他的窗口,只需調(diào)用SendMessage或PostMessage(SendMessage會使接受到消息的窗口立刻處理消息,而PostMessage是把消息發(fā)送到一個稱為消息隊列的隊列中去,等候處理(它將會在該消息處理完后返回,例如有些延遲)).你必須制定接受消息的窗口的句柄,欲發(fā)送消息的編號(所有的消息的編號均為常量,你可以通過API Text Viewer查得)以及兩個32位的參數(shù)。
API:應(yīng)用程序接口(API:Application Program Interface)
應(yīng)用程序接口(API:application programming interface)是一組定義、程序及協(xié)議的集合,通過 API 接口實現(xiàn)計算機軟件之間的相互通信。API 的一個主要功能是提供通用功能集。程序員通過使用 API 函數(shù)開發(fā)應(yīng)用程序,從而可以避免編寫無用程序,以減輕編程任務(wù)。
API 同時也是一種中間件,為各種不同平臺提供數(shù)據(jù)共享。根據(jù)單個或分布式平臺上不同軟件應(yīng)用程序間的數(shù)據(jù)共享性能,可以將 API 分為四種類型:
遠程過程調(diào)用(RPC):通過作用在共享數(shù)據(jù)緩存器上的過程(或任務(wù))實現(xiàn)程序間的通信。
標準查詢語言(SQL):是標準的訪問數(shù)據(jù)的查詢語言,通過通用數(shù)據(jù)庫實現(xiàn)應(yīng)用程序間的數(shù)據(jù)共享。
文件傳輸:文件傳輸通過發(fā)送格式化文件實現(xiàn)應(yīng)用程序間數(shù)據(jù)共享。
信息交付:指松耦合或緊耦合應(yīng)用程序間的小型格式化信息,通過程序間的直接通信實現(xiàn)數(shù)據(jù)共享。
當前應(yīng)用于 API 的標準包括 ANSI 標準 SQL API。另外還有一些應(yīng)用于其它類型的標準尚在制定之中。API 可以應(yīng)用于所有計算機平臺和操作系統(tǒng)。這些 API 以不同的格式連接數(shù)據(jù)(如共享數(shù)據(jù)緩存器、數(shù)據(jù)庫結(jié)構(gòu)、文件框架)。每種數(shù)據(jù)格式要求以不同的數(shù)據(jù)命令和參數(shù)實現(xiàn)正確的數(shù)據(jù)通信,但同時也會產(chǎn)生不同類型的錯誤。因此,除了具備執(zhí)行數(shù)據(jù)共享任務(wù)所需的知識以外,這些類型的 API 還必須解決很多網(wǎng)絡(luò)參數(shù)問題和可能的差錯條件,即每個應(yīng)用程序都必須清楚自身是否有強大的性能支持程序間通信。相反由于這種 API 只處理一種信息格式,所以該情形下的信息交付 API 只提供較小的命令、網(wǎng)絡(luò)參數(shù)以及差錯條件子集。正因為如此,交付 API 方式大大降低了系統(tǒng)復(fù)雜性,所以當應(yīng)用程序需要通過多個平臺實現(xiàn)數(shù)據(jù)共享時,采用信息交付 API 類型是比較理想的選擇。
API 與圖形用戶接口(GUI)或命令接口有著鮮明的差別:API 接口屬于一種操作系統(tǒng)或程序接口,而后兩者都屬于直接用戶接口。
有時公司會將 API 作為其公共開放系統(tǒng)。也就是說,公司制定自己的系統(tǒng)接口標準,當需要執(zhí)行系統(tǒng)整合、自定義和程序應(yīng)用等操作時,公司所有成員都可以通過該接口標準調(diào)用源代碼,該接口標準被稱之為開放式 API。
另一種含義:
1:美國石油協(xié)會(API:American Petrolenm Institute):
API610/682是機械密封的設(shè)計和選用標準;
API676 轉(zhuǎn)子泵的標準;
2:API還有一種含意:空氣污染指數(shù)!居⑽ air pollution index 的縮寫】
空氣污染指數(shù)(AIR POLLUTION INDEX,簡稱API)是一種反映和評價空氣質(zhì)量的方法,就是將常規(guī)監(jiān)測的幾種空氣污染物的濃度簡化成為單一的概念性數(shù)值形式、并分級表征空氣質(zhì)量狀況與空氣污染的程度,其結(jié)果簡明直觀,使用方便,適用于表示城市的短期空氣質(zhì)量狀況和變化趨勢。
空氣污染指數(shù)的確定原則:空氣質(zhì)量的好壞取決于各種污染物中危害最大的污染物的污染程度?諝馕廴局笖(shù)是根據(jù)環(huán)境空氣質(zhì)量標準和各項污染物對人體健康和生態(tài)環(huán)境的影響來確定污染指數(shù)的分級及相應(yīng)的污染物濃度限值。目前我國所用的空氣指數(shù)的分級標準是:(1)空氣污染指數(shù)(API)50點對應(yīng)的污染物濃度為國家空氣質(zhì)量日均值一級標準;(2)API100點對應(yīng)的污染物濃度為國家空氣質(zhì)量日均值二級標準;(3)API200點對應(yīng)的污染物濃度為國家空氣質(zhì)量日均值三級標準;(4)API更高值段的分級對應(yīng)于各種污染物對人體健康產(chǎn)生不同影響時的濃度限值,API500點對應(yīng)于對人體產(chǎn)生嚴重危害時各項污染物的濃度。
根據(jù)我國空氣污染的特點和污染防治工作的重點,目前計入空氣污染指數(shù)的污染物項目暫定為:二氧化硫、氮氧化物和總懸浮顆粒物。隨著環(huán)境保護工作的深入和監(jiān)測技術(shù)水平的提高,再調(diào)整增加其它污染項目,以便更為客觀地反應(yīng)污染狀況。
空氣污染指數(shù)的計算與報告:
污染指數(shù)與各項污染物濃度的關(guān)系是分段線性函數(shù)(見表1和圖1),用內(nèi)插法計算各污染物的分指數(shù)In(具體計算方法請參見《環(huán)境監(jiān)測簡報》1997年第9期),取各項污染物分指數(shù)中最大者代表該區(qū)域或城市的污染指數(shù)。即:API=max(I1,I2···Ii,···In)
該指數(shù)所對應(yīng)的污染物即為該區(qū)域或城市的首要污染物。當污染指數(shù)API值小于50時,不報告首要污染物。
3:在JAVA中,API除了有應(yīng)用“程序程序接口”的意思外,還特指JAVA API的說明文檔,也稱為JAVA幫助文檔。
4.API Q1質(zhì)量體系認證是您向用戶證明您有一套API認可的完善的質(zhì)量管理體系, 有些石油、天然氣設(shè)備制造商所生產(chǎn)的產(chǎn)品目前沒有所適用API會標產(chǎn)品的規(guī)范對應(yīng), 但他們又想向用戶證明他們的產(chǎn)品或服務(wù)符合API標準的要求,所以API Q1質(zhì)量體系認證可以幫您辦到。API Q1質(zhì)量體系認證特別適用于那些所生產(chǎn)的產(chǎn)品沒有相應(yīng)的API會標產(chǎn)品規(guī)范所對應(yīng)的石油、天然氣設(shè)備生產(chǎn)廠家, 或向石油、天然氣行業(yè)提供服務(wù)的公司。
5.原料藥(Active Pharmaceutical Ingredients): 指的是藥物活性成分,也就是我們通常所說的原料藥。
另一種含義:
使用API(應(yīng)用編程接口,英文全稱:Application Programming Interface)構(gòu)建業(yè)務(wù)是實現(xiàn)開放式業(yè)務(wù)結(jié)構(gòu)的關(guān)鍵技術(shù),也是下一代網(wǎng)絡(luò)區(qū)別于傳統(tǒng)電信網(wǎng)的主要特點之一。目前,關(guān)于下一代網(wǎng)絡(luò)的開放式業(yè)務(wù)API標準主要包括:由Parlay組織、3GPP和ETSI SPAN共同制定的Parlay/OSA API以及由SUN公司在Java平臺上推出的JAIN API。
Parlay API是由Parlay組織定義的便于業(yè)務(wù)開發(fā)者快速創(chuàng)建電信業(yè)務(wù)的應(yīng)用編程接口,自1999年成立以來,Parlay組織已制定了4個版本的Parlay協(xié)議。開放式業(yè)務(wù)結(jié)構(gòu)(OSA)是3GPP制定的多媒體業(yè)務(wù)框架,選定Parlay作為其開放式業(yè)務(wù)接口API。兩者結(jié)合的Parlay/OSA API獨立于具體的實現(xiàn)技術(shù),可以應(yīng)用于固定網(wǎng)絡(luò)、移動網(wǎng)絡(luò)以及下一代網(wǎng)絡(luò)的業(yè)務(wù)提供;獨立于具體的實現(xiàn)語言,可以用C、C++、Java等各種語言實現(xiàn);定義了完善的認證和授權(quán)機制,以支持對第3方應(yīng)用的支持。
Parlay/OSA API位于由網(wǎng)絡(luò)運營商管理的Parlay網(wǎng)關(guān)和由業(yè)務(wù)提供商管理的應(yīng)用服務(wù)器之間。Parlay網(wǎng)關(guān)對應(yīng)用服務(wù)器屏蔽了下層網(wǎng)絡(luò)的技術(shù)實現(xiàn)細節(jié),使得應(yīng)用服務(wù)器可以使用統(tǒng)一的方式對網(wǎng)絡(luò)能力進行訪問。
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)、認證、授權(quán)和綜合管理。
JAIN API和Parlay/OSA API設(shè)計思想相近,功能上具有互補性。它采用專一的Java語言實現(xiàn),并且定義了比較完備的訪問各種網(wǎng)絡(luò)的網(wǎng)絡(luò)協(xié)議API。目前Parlay/JAIN聯(lián)合工作組正在進行兩者的融合工作。
API:醫(yī)藥活性物原料藥