什麼是Windows API?
在應用程式中要完成某個功能,都是以函式呼叫的形式實現的,同樣,應用程式也是以函式呼叫的方式來通知作業系統執行相應的功能的。作業系統所能夠完成的每一個特殊功能通常都有一個函式與其對應,也就是說,作業系統把它所能夠完成的功能以函式的形式提供給應用程式使用,應用程式對這些函式的呼叫就叫做系統呼叫,這些函式的集合就是Windows作業系統提供給應用程式程式設計的介面(Application Programming Interface),簡稱Windows API。如CreateWindow就是一個API函式,應用程式中呼叫這個函式,作業系統就會按照該函式提供的引數資訊產生一個相應的視窗。
Windows 這個多作業系統除了協調應用程式的執行、分配記憶體、管理系統資源…之外, 她同時也是一個很大的服務中心,呼叫這個服務中心的各種服務(每一種服務就是一個函式),可以幫應用程式達到開啟視窗、描繪圖形、使用周邊裝置…等目的,由於這些函式服務的物件是應用程式(Application), 所以便稱之為 Application Programming Interface,簡稱 API 函式。WIN32 API也就是MicrosoftWindows 32位平臺的應用程式程式設計介面。
凡是在 Windows 工作環境底下執行的應用程式, 都可以呼叫Windows API。
2.Windows API的歷史與現狀
當WINDOWS作業系統開始佔據主導地位的時候,開發WINDOWS平臺下的應用程式成為人們的需要。而在WINDOWS程式設計領域處於發展的初期,WINDOWS程式設計師所能使用的程式設計工具唯有API函式,這些函式是WINDOWS提供給應用程式與作業系統的介面,他們猶如“積木塊”一樣,可以搭建出各種介面豐富,功能靈活的應用程式。所以可以認為API函式是構築整個WINDOWS框架的基石,在它的下面是WINDOWS的作業系統核心,而它的上面則是所有的華麗的WINDOWS應用程式。
但是,沒有合適的Windows程式設計平臺,程式設計師想編寫具有Windows風格的軟體,必須藉助API,API也因此被賦予至高無上的地位。那時的WINDOWS程式開發還是比較複雜的工作,程式設計師必須熟記一大堆常用的API函式,而且還得對WINDOWS作業系統有深入的瞭解。然而隨著軟體技術的不斷髮展,在WINDOWS平臺上出現了很多優秀的視覺化程式設計環境,程式設計師可以採用“即見即所得”的程式設計方式來開發具有精美使用者介面和功能強大的應用程式。
這些優秀視覺化程式設計環境操作簡單、介面友好(諸如VB、VC++、DELPHI等),在這些工具中提供了大量的類庫和各種控制元件,它們替代了API的神祕功能,事實上這些類庫和控制元件都是構架在WIN32 API函式基礎之上的,是封裝了的API函式的集合。它們把常用的API函式的組合在一起成為一個控制元件或類庫,並賦予其方便的使用方法,所以極大的加速了WINDOWS應用程式開發的過程。有了這些控制元件和類庫,程式設計師便可以把主要精力放在程式整體功能的設計上,而不必過於關注技術細節。
實際上如果我們要開發出更靈活、更實用、更具效率的應用程式,必然要涉及到直接使用API函式,雖然類庫和控制元件使應用程式的開發簡單的多,但它們只提供WINDOWS的一般功能,對於比較複雜和特殊的功能來說,使用類庫和控制元件是非常難以實現的,這時就需要採用API函式來實現。
這也是API函式使用的場合,所以我們對待API函式不必刻意去研究每一個函式的用法,那也是不現實的(能用得到的API函式有幾千個呢)。正如某位大蝦所說:API不要去學,在需要的時候去查API幫助就足夠了。但是,許多API函式令人難以理解,易於誤用,還會導致出錯,這一切都阻礙了它的推廣。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-444282/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是API抓取?API
- 什麼是API介面,具體是什麼意思?API
- 什麼是程式的API?API
- Windows NT 是什麼?Windows
- 到底什麼是API經濟API
- 不懂就問,API是什麼API
- 什麼是 Angular 的 API Extractor?AngularAPI
- 什麼是API管理? - DZoneAPI
- 通過程式碼解釋什麼是API,什麼是SDK?API
- 什麼是“API 優先”方法? - wixAPI
- 美顏API是什麼意思?美顏API和美顏SDK有什麼區別?API
- 什麼是JPA?Java Persistence API簡介JavaAPI
- 為什麼 GraphQL 是 API 的未來API
- RDD到底是什麼?RDD的APIAPI
- 代理IP中的API介面是什麼?API
- 什麼是API資料介面該怎麼使用?API
- Symantec Backup Exec for Windows Servers是什麼?WindowsServer
- API介面是什麼?產品經理怎麼去看API介面文件?API
- win10是什麼字型_windows10預設字型是什麼Win10Windows
- 通俗易懂的解釋:什麼是APIAPI
- RESTful API的流行的原因是什麼?RESTAPI
- Coinbase 開發的 Rosetta API 是什麼ROSAPI
- Windows 10步驟記錄是什麼?Windows
- windows10免費升級的是什麼版本_怎麼分辨免費升級windows10是什麼版本Windows
- 什麼是API介面?API介面的用途以及詳細示例說明。API
- 為什麼使用API?什麼情況下避免使用API?API
- 什麼是cookie,什麼是sessionCookieSession
- 什麼是DNS,什麼是HostsDNS
- 什麼是模式? 什麼是框架?模式框架
- 這是什麼這是什麼
- windows10易升是什麼_windows10易升怎麼關閉Windows
- 什麼是WebAuthn、FIDO 是什麼?Web
- ITIL是什麼意思?ITIL是什麼?
- 什麼是跨域,什麼是同源跨域
- 什麼是.NET平臺、什麼是c#、什麼是ASP.NET。C#ASP.NET
- ftp是什麼,ftp是什麼東西?FTP
- Java是什麼_Java是做什麼的?Java
- 什麼是正向代理?什麼是反向代理?