SDK 就是 Software Development Kit 的縮寫(xiě),中文意思就是“軟件開(kāi)發(fā)工具包”。這是一個(gè)覆蓋面相當廣泛的名詞,可以這么說(shuō):輔助開(kāi)發(fā)某一類(lèi)軟件的相關(guān)文檔、范例和工具的集合都可以叫做“SDK”。具體到我們這個(gè)系列教程,我們后面只討論廣義 SDK 的一個(gè)子集——即開(kāi)發(fā) Windows 平臺下的應用程序所使用的 SDK。為了解釋什么是 SDK 我們不得不引入 API、動(dòng)態(tài)鏈接庫、導入庫等等概念。不要怕,也就是幾個(gè)新的名詞而已,我也是到了大學(xué)快結束的時(shí)候才體會(huì )到其實(shí)學(xué)習新知識就是在學(xué)習新名詞、新概念和新術(shù)語(yǔ)。首先要接觸的是“API”,也就是 Application Programming Interface,其實(shí)就是操作系統留給應用程序的一個(gè)調用接口,應用程序通過(guò)調用操作系統的 API 而使操作系統去執行應用程序的命令(動(dòng)作)。其實(shí)早在 DOS 時(shí)代就有 API 的概念,只不過(guò)那個(gè)時(shí)候的 API 是以中斷調用的形式(INT 21h)提供的,在 DOS 下跑的應用程序都直接或間接的通過(guò)中斷調用來(lái)使用操作系統功能,比如將 AH 置為 30h 后調用 INT 21h 就可以得到 DOS 操作系統的版本號。而在 Windows 中,系統 API 是以函數調用的方式提供的。同樣是取得操作系統的版本號,在 Windows 中你所要做的就是調用 GetVersionEx() 函數?梢赃@么說(shuō),DOS API 是“Thinking in 匯編語(yǔ)言”的,而 Windows API則是“Thinking in 高級語(yǔ)言”的。DOS API 是系統程序的一部分,他們與系統一同被載入內存并且可以通過(guò)中斷矢量表找到他們的入口,那么 Windows API呢?要說(shuō)明白這個(gè)問(wèn)題就不得不引入我們下面要介紹得這個(gè)概念——DLL。DLL(又是一個(gè)縮寫(xiě),感覺(jué) IT 這個(gè)行業(yè)里三字頭縮寫(xiě)特別多),即 Dynamic Link Library(動(dòng)態(tài)鏈接庫)。我們經(jīng)常會(huì )看到一些 .dll 格式的文件,這些文件就是動(dòng)態(tài)鏈接庫文件,其實(shí)也是一種可執行文件格式。跟 .exe 文件不同的是,.dll 文件不能直接執行,他們通常由 .exe 在執行時(shí)裝入,內含有一些資源以及可執行代碼等。其實(shí) Windows 的三大模塊就是以 DLL 的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),里面就含有了 API 函數的執行代碼。為了使用 DLL 中的 API 函數,我們必須要有 API 函數的聲明(.H)和其導入庫(.LIB),函數的原型聲明不難理解,那么導入庫又是做什么用的呢?我們暫時(shí)先這樣理解:導入庫是為了在 DLL 中找到 API 的入口點(diǎn)而使用的。所以,為了使用 API 函數,我們就要有跟 API 所對應的 .H 和 .LIB 文件,而 SDK 正是提供了一整套開(kāi)發(fā) Windows 應用程序所需的相關(guān)文件、范例和工具的“工具包”。到此為止,我們才真正的解釋清楚了 SDK 的含義。希望能幫助到您