基本情況
高版本VC++包括了SDK所有的頭檔案、幫助、示例和工具,不需要再安裝SDK,低版本如VC++5.0則需要安裝SDK。從windows 98開始,windows SDK叫Platform SDK(http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en),包含最新的windows API函式的有關聲明、例子。
用VC編寫windows程式有兩種方式:windows c方式(SDK)和C++方式(對SDK函式進行包裝,如VC中的MFC、BCB中的VCL)。SDK編程就是直接用windows API進行編程。API由上千個API函式組成(win95中有兩千多個),而MFC是API的封裝,結合面向對象的繼承、多態組成一個個類,共有一百多個類組成。
SDK是Software Development Kit的縮寫,中文意思是“ 軟體 開發工具包”。這是一個覆蓋面相當廣泛的名詞,可以這么說:輔助開發某一類軟體的相關文檔、範例和工具的集合都可以叫做“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 是系統程式的一部分,他們與系統一同被載入記憶體並且可以通過中斷矢量表找到他們的入口。
DLL即 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 包含了使用 API 的必需資料,所以人們也常把僅使用 API 來編寫 Windows 應用程式的開發方式叫做“SDK 編程”。而 API 和 SDK 是開發 Windows 應用程式所必需的東西,所以其它編程框架和類庫都是建立在它們之上的,比如 VCL 和 MFC,雖然他們比起“SDK 編程”來有著更高的抽象度,但這絲毫不妨礙它們在需要的時候隨時直接調用 API 函式。
時下學計算機的大多想學編程,且大部分都是在Windows下工作的,而目前學得最熱門的是VC,大多數人一開始就開始學習VC,VC是以C++為語言基礎的開發工具,而C++是C語言的擴充,故要學好VC最好是先學好C和C++。
用VC編寫Windows程式有兩種:1. Windows c方式(SDK),2. C++方式:即對SDK函式進行包裝,如VC的MFC,BCB的VCL等。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++的三大特性。