SDK,DLL,API,MFC 的關係與理解

2021-06-22 12:18:01 字數 1711 閱讀 4289

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

其實上面只是說了乙個 sdk 大概的概念而已,理解什麼是 sdk 真有這麼容易嗎?恐怕沒這麼簡單!為了解釋什麼是 sdk 我們不得不引入 api、動態鏈結庫、導入庫等等概念。^_^,不要怕,也就是幾個新的名詞而已,我也是到了大學快結束的時候才體會到其實學習新知識就是在學習新名詞、新概念和新術語。

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 函式。

說說mfc

時下學計算機的大多想學程式設計,且大部分都是在windows下工作的,而目前學得最熱門的是vc,大多數人一開始就開始學習vc,vc是以c++為語言基礎的開發工具,而c++是c語言的擴充,故要學好vc最好是先學好c和c++。

用vc編寫windows程式有兩種:1. windows 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環境下,你依然可以使用資源編輯器和classwizar等工具完成程式的編寫。用sdk編寫程式關鍵是能夠程式的來龍去脈,當然那樣效率會很低,不比vb、pb那麼快,任何東西都是有得有失,如你熟悉用sdk寫程式後,對mfc會比較容易上手的,關鍵要熟悉c++的三大特性。

類之間的關係(1 使用關係和組合關係)

組合關係中的建構函式和析構函式的呼叫順序 組合關係中呼叫成員的帶引數的建構函式 之前的章節我們介紹了單個類有關的知識。在程式中如果出現多個類,那麼它們之間會表現出一定的關係。粗略的看,類之間有以下幾種關係 使用關係是比較弱的關係,就是說a類使用了b類的功能 方法 在 層面,a類可能以如下方式使用了b...

嚴格的概念認識 關係 關係模型

上篇文章裡,我們已經了解了關聯式資料庫設計的一般流程。在這篇文章裡,我想把大家帶入乙個嚴格的 明朗的關聯式資料庫世界裡。看了本篇文章,希望能在大家腦海中建立乙個這樣的印象 資料庫及其設計是一件嚴謹的事,資料庫本身由於它的嚴謹性決定了它的科學性及可靠性。這篇文章的內容會涉及一些集合論的知識,沒這方面根...

關係的連線

關係間的連線分為內連線 inner join 和外連線 outer join 外連線又可分為 left outer join,right outer join和full outer join。如果不加條件將會產生笛卡爾積 如果有連線條件,按照下一節 連線條件 的規則進行運算,符合條件的元組放入結果關...