SDK程式設計

2021-04-14 19:23:35 字數 1873 閱讀 9010

sdk程式設計

2023年05月22日 星期二 10:17 a.m.

sdk是 software development kit 的縮寫,即「軟體開發工具包」。

sdk是乙個覆蓋面相當廣泛的名詞,可以這麼說:輔助開發某一類軟體的相關文件、範例和工具的集合都可以叫做「sdk」。具體到windows程式開發,我們下面只討論廣義 sdk 的乙個子集——即開發windows 平台下的應用程式所使用的sdk。

為了解釋什麼是 sdk 我們不得不引入 api、動態鏈結庫、導入庫等等概念。

作業系統留給應用程式的乙個呼叫介面,應用程式通過呼叫作業系統的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 即 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 函式。

通過呼叫庫函式(在這裡是win32api), 來實現程式的搭建.    所以程式比較小, 效率高, 在一些底層的, 和對效率要求很高的場合用.

mfc就是把sdk函式組織成c++的class提供給程式設計師使用,    介面簡單了, 但是有利就有弊, 它的效率根純sdk的程式相比, 要稍微遜色一些.

但是在實際的開發中, 我們還是經常要在mfc base的程式裡邊呼叫api函式的.    所以, 這兩者都是需要熟悉地。

用vc編寫windows程式有兩種方式:windows c方式(sdk)和c++方式(對sdk函式進行包裝,如vc中的mfc、bcb中的owl)。sdk程式設計就是直接用windows api進行程式設計。api由上千個api函式組成(win95中有兩千多個),而mfc是api的封裝,結合物件導向的繼承、多型組成乙個個類,共有一百多個類組成。----------**donews.com社群-〉windows 程式設計

MFC程式設計與SDK程式設計

新增的指令碼是指框架 mfc microsoft foundation class 微軟基礎類庫 是微軟為了簡化程式設計師的開發工作所開發的一套 c 類的集合,c環境是面向過程的不支援mfc,mfc只封裝在c 裡,mfc無法在c環境中使用 是一套物件導向的函式庫,mfc 採用物件導向設計,將大部分的...

SDK程式設計筆記 UNICODE篇

sdk 程式設計筆記 unicode篇 簡單基礎但重要 petzold的programming windows的第2章非常詳細的講解了關於unicode的方方面面。我們需要知道的是它給c語言和windows程式設計帶來的變化。c語言相關 既然有兩個版本的函式,如果我們想在程式中同時支援它們該怎麼辦?...

SDK程式設計筆記 UNICODE篇

sdk程式設計筆記 unicode篇 簡單基礎但重要 petzold的programming windows的第2章非常詳細的講解了關於unicode的方方面面。我們需要知道的是它給c語言和windows程式設計帶來的變化。c語言相關 測試環境 vc 6.0 char型別 wchar t型別 型別大...