API和DLL

API

API(Application Programming Interface,應用編程接口)其實就是 操做系統留給應用程序的一個調用接口,應用程序經過調用操做系統的 API 而使操做系統去執行應用程序的命令(動做)。其實早在 DOS時代就有 API 的概念,只不過那個時候的 API 是以中斷調用的形式(INT 21h)提供的,在  DOS 下跑的應用程序都直接或間接的經過中斷調用來使用操做系統功能, 好比將 AH 置爲 30h後調用INT 21h就能夠獲得DOS 操做系統的版本號。而在  Windows 中,系統 API 是以 函數調用的方式提供的。一樣是取得操做系統的版本號,在 Windows 中你所要作的就是調用 GetVersionEx() 函數。
能夠這麼說, DOSAPI 是「Thinking in 彙編語言」的,而 Windows API 則是「Thinking in 高級語言」的。
DOS API是系統程序的一部分,他們與系統一同被載入內存而且能夠經過 中斷矢量表找到他們的入口,那麼 Windows API 呢?要說明白這個問題就不得不引入咱們下面要介紹得這個概念——DLL。

DLL

DLL,即 Dynamic Link Library( 動態連接庫)。在windows環境下含有大量 . dll格式的文件,這些文件就是 動態連接庫文件,其實也是一種 可執行文件格式。跟 .exe 文件不一樣的是,. dll文件不能直接執行,他們一般由 .exe 在執行時裝入,內含有一些資源以及 可執行代碼等。其實 Windows 的三大模塊就是以 DLL的形式提供的( Kernel32.dllUser32.dllGDI32.dll),裏面就含有了 API 函數的執行代碼。爲了使用  DLL 中的 API 函數, 必需要有 API 函數的聲明(.H)和其 導入庫(.LIB),導入庫能夠先這樣理解:導入庫是爲了在 DLL 中找到 API 的 入口點而使用的。
爲了使用  API 函數,咱們就要有跟 API 所對應的 .H 和 .LIB 文件,而 SDK 正是提供了一整套開發 Windows 應用程序所需的相關文件、範例和工具的「工具包」。
SDK 包含了使用 API 的必需資料,因此人們也常把僅使用 API 來編寫  Windows 應用程序的開發方式叫作「SDK 編程」。而 API和 SDK 是開發 Windows應用程序所必需的東西,因此其它 編程框架和類庫都是創建在它們之上的, 好比VCL 和 MFC,雖然他們比起「SDK 編程」來有着更高的抽象度,但這絲絕不妨礙它們在須要的時候隨時直接調用 API 函數 。
相關文章
相關標籤/搜索