什麼是SDK
轉自:http://liyanblog.cn/articles/2012/09/18/1347935267646.html
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 函數。
說說SDK
時下學計算機的大多想學程式設計,且大部分都是在Windows下工作的,而目前學得最熱門的是VC,大多數人一開始就開始學習VC,VC是以C++為語言基礎的開發工具,而C++是C語言的擴充,故要學好VC最好是先學好C和C++。
用VC編寫Windows程式有兩種:1. Windwos c方式(SDK),2. C++方式:即對SDK函數進行包裝,如VC的MFC,BCB的OWL等。SDK程式設計就是直接調用Windows的API進行程式設計,平時人們常說"用SDK寫程式"就是指用Windows的API函數來寫程式,API由上千個API函數組成(Win95的API有兩千多個)。而MFC是API的封閉,結合面向對象程式設計的繼承性和多态性組成一個個的"類",共由一百多個類組成。盡管MFC比SDK友善,但要深入VC,直接去學MFC卻是不明智的選擇。隻有在熟悉了MFC的運作機制的情況下,才有可能深入下去。是以學VC最好是先學用SDK編寫程式,在此期間掌握Windows作業系統的工作原理和各API函數的應用,然後再深入MFC。
程式設計環境
我們仍然用VC6的IDE(內建開發環境)來編寫SDK程式,啟動VC6後選擇File菜單的New...選項,在出現的New對話框的Projects标簽内選擇Win32 Application,然後在Projects Name指定項目的名字,在Location中指定路徑後按OK按鈕,在出現的對話框中,如果你想要用C語言來寫程式可以選擇An emtpy project,如果你想建立一個帶有WinMain入口函數和普通參數的設定的項目,可以選擇A simple Win32 application,如果您想建立一個簡單典型的“Hello
World!”Win32SDK application應用程式,可以選擇A typical "Hello World!" application。确定項目類型後按Finish完成。
在VC6環境下,你依然可以使用資源編輯器和ClassWizar等工具完成程式的編寫。用SDK編寫程式關鍵是能夠程式的來龍去脈,當然那樣效率會很低,不比VB、PB那麼快,任何東西都是有得有失,如你熟悉用SDK寫程式後,對MFC會比較容易上手的,關鍵要熟悉C++的三大特性。
http://liyanblog.cn/articles/2012/09/18/1347935267646.html