国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 編程設計 > 正文

SDK的詳解

2020-06-27 15:48:06
字體:
來源:轉載
供稿:網友

  經常會在技術論壇里面看到類似這樣的帖子:"什么是 SDK?","請高手講一下 SDK 是什么東東?"......
  其實很簡單,SDK 就是 Software Development Kit 的縮寫,中文意思就是"軟件開發工具包"。這是一個覆蓋面相當廣泛的名詞,可以這么說:輔助開發某一類軟件的相關文檔、范例和工具的集合都可以叫做 "SDK"。具體到我們這個系列教程,我們后面只討論廣義 SDK 的一個子集——即開發 Windows 平臺下的應用程序所使用的 SDK。
  呵呵,其實上面只是說了一個 SDK 大概的概念而已,理解什么是 SDK 真有這么容易嗎?恐怕沒這么簡單!為了解釋什么是 SDK 我們不得不引入 API、動態鏈接庫、導入庫等等概念。^_^,不要怕,也就是幾個新的名詞而已,我也是到了大學快結束的時候才體會到其實學習新知識就是在學習新名詞、新概念和新術語。
  首先要接觸的是"API",也就是 Application Programming Interface,其實就是操作系統留給應用程序的一個調用接口,應用程序通過調用操作系統的 API 而使操作系統去執行應用程序的命令(動作)。其實早在 DOS 時代就有 API 的概念,只不過那個時候的 API 是以中斷調用的形式(INT 21h)提供的,在 DOS 下跑的應用程序都直接或間接的通過中斷調用來使用操作系統功能,比如將 AH 置為 30h 后調用 INT 21h 就可以得到 DOS 操作系統的版本號。而在 Windows 中,系統 API 是以函數調用的方式提供的。同樣是取得操作系統的版本號,在 Windows 中你所要做的就是調用 GetVersionEx() 函數。可以這么說,DOS API 是"Thinking in 匯編語言"的,而 Windows API 則是"Thinking in 高級語言"的。DOS API 是系統程序的一部分,他們與系統一同被載入內存并且可以通過中斷矢量表找到他們的入口,那么 Windows API 呢?要說明白這個問題就不得不引入我們下面要介紹得這個概念——DLL。
  DLL(又是一個縮寫,感覺 IT 這個行業里三字頭縮寫特別多),即 Dynamic Link Library(動態鏈接庫)。我們經常會看到一些 .dll 格式的文件,這些文件就是動態鏈接庫文件,其實也是一種可執行文件格式。跟 .exe 文件不同的是,.dll 文件不能直接執行,他們通常由 .exe 在執行時裝入,內含有一些資源以及可執行代碼等。其實 Windows 的三大模塊就是以 DLL 的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),里面就含有了 API 函數的執行代碼。為了使用 DLL 中的 API 函數,我們必須要有 API 函數的聲明(.H)和其導入庫(.LIB),函數的原型聲明不難理解,那么導入庫又是做什么用的呢?我們暫時先這樣理解:導入庫是為了在 DLL 中找到 API 的入口點而使用的。
  所以,為了使用 API 函數,我們就要有跟 API 所對應的 .H 和 .LIB 文件,而 SDK 正是提供了一整套開發 Windows 應用程序所需的相關文件、范例和工具的"工具包"。到此為止,我們才真正的解釋清楚了 SDK 的含義。
  由于 SDK 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows 應用程序的開發方式叫做"SDK 編程"。而 API 和 SDK 是開發 Windows 應用程序所必需的東西,所以其它編程框架和類庫都是建立在它們之上的,比如 VCL 和 MFC,雖然他們比起"SDK 編程"來有著更高的抽象度,但這絲毫不妨礙它們在需要的時候隨時直接調用 API 函數。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扬中市| 称多县| 寿阳县| 石台县| 平舆县| 三穗县| 筠连县| 通山县| 张家口市| 军事| 民勤县| 鹤峰县| 礼泉县| 金溪县| 巴东县| 天长市| 来安县| 澎湖县| 句容市| 中阳县| 岳西县| 茂名市| 南皮县| 萨迦县| 沂源县| 庆阳市| 靖边县| 于田县| 辽宁省| 太湖县| 青田县| 紫金县| 浦县| 渝北区| 普兰店市| 韶山市| 馆陶县| 平塘县| 昔阳县| 苏尼特右旗| 蒲江县|