這在某種程度上很象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子句使用其它的而不是他們原有的名稱,妳只需簡單地改變壹下函數名稱而它仍然可以正常運行.
API 分為四種類型:
遠程過程調用(RPC):通過作用在***享數據緩存器上的過程(或任務)實現程序間的通信。
標準查詢語言(SQL):是標準的訪問數據的查詢語言,通過通用數據庫實現應用程序間的數據***享。
文件傳輸:文件傳輸通過發送格式化文件實現應用程序間數據***享。
信息交付:指松耦合或緊耦合應用程序間的小型格式化信息,通過程序間的直接通信實現數據***享。
當前應用於 API 的標準包括 ANSI 標準 SQL API。另外還有壹些應用於其它類型的標準尚在制定之中。API 可以應用於所有計算機平臺和操作系統。這些 API 以不同的格式連接數據(如***享數據緩存器、數據庫結構、文件框架)。每種數據格式要求以不同的數據命令和參數實現正確的數據通信,但同時也會產生不同類型的錯誤。因此,除了具備執行數據***享任務所需的知識以外,這些類型的 API 還必須解決很多網絡參數問題和可能的差錯條件,即每個應用程序都必須清楚自身是否有強大的性能支持程序間通信。相反由於這種 API 只處理壹種信息格式,所以該情形下的信息交付 API 只提供較小的命令、網絡參數以及差錯條件子集。正因為如此,交付 API 方式大大降低了系統復雜性,所以當應用程序需要通過多個平臺實現數據***享時,采用信息交付 API 類型是比較理想的選擇。
API 與圖形用戶接口(GUI)或命令接口有著鮮明的差別:
API 接口屬於壹種操作系統或程序接口,而後兩者都屬於直接用戶接口。 有時公司會將 API 作為其公***開放系統。也就是說,公司制定自己的系統接口標準,當需要執行系統整合、自定義和程序應用等操作時,公司所有成員都可以通過該接口標準調用源代碼,該接口標準被稱之為開放式 API。