當前位置:編程學習大全網 - 編程語言 - API意思和用途是啥

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位的參數。

另壹種含義:

1:美國石油協會(API:American Petrolenm Institute):制定機油標準的組織。汽車用發動機機油必須符合API提出的標準。

2:API還有壹種含意:空氣汙染指數。英文 air pollution index 的縮寫

3:在JAVA中,API除了有應用“程序程序接口”的意思外,還特指JAVA API的說明文檔,也稱為JAVA幫助文檔。

  • 上一篇:操作系統中毒的表現是什麽啊
  • 下一篇:數控車床怎樣對刀及編程?
  • copyright 2024編程學習大全網