MFC SDK和API有什麼區別

2022-08-20 14:30:21 字數 2074 閱讀 3224

mfc、sdk和api有什麼區別

mfc microsoft foundation class 微軟函式類庫

sdk (software development kit,軟體開發包)

軟體開發包通常是一系列api函式,而mfc 是由微軟公司提供的對api封裝後的類庫,因此從這個意義上可以說mfc是sdk的封裝。另外,mfc中封裝了一套訊息處理流程,將sdk中api全部做了封裝,使得開發起來速度加快,而sdk是最底層的函式庫,mfc對它進行了封裝。 

用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.

sdk是基於c語言的,而mfc是基於c++的,這是最根本的區別。mfc主要封裝的是介面、檔案、wininet和執行緒等函式。mfc除了封裝api,最重要的是它的體系結構,它所使用的doc/view結構是sdk中沒有的,這種架構是比較特殊的。儘管doc/view結構不是微軟的發明,但它是mfc的特色。微軟開發windows時使用的是c語言,所以最初設計sdk時並沒有考慮c++。

mfc是微軟的基本類庫,對很多東西已經進行了封裝,因此使用起來簡單、方便。sdk是採用較一般的c語言,但很靈活。

一般編寫簡單的程式,使用mfc應該能達到要求。但如果編寫功能強大的程式,則使用sdk較多,尤其是底層的開發。

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

上面只是說了乙個 sdk 大概的概念而已,為了解釋什麼是 sdk ,我們不得不引入 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 的含義。 

由於 sdk 包含了使用 api 的必需資料,所以人們也常把僅使用 api 來編寫 windows 應用程式的開發方式叫做「sdk 程式設計」。而 api 和 sdk 是開發 windows 應用程式所必需的東西,所以其它程式設計框架和類庫都是建立在它們之上的,比如 vcl 和 mfc,雖然他們比起「sdk 程式設計」來有著更高的抽象度,但這絲毫不妨礙它們在需要的時候隨時直接呼叫 api 函式。

附帶地,這裡簡單地給出mfc和 api及 sdk三者的關係

mfc是乙個類庫,主要完成對win32 api 的封裝,sdk是乙個win32應用程式開發包,裡面包含了開發win32應用程式所需的api宣告,api是微軟提供的win32應用程式介面. 

簡單說,api是介面,sdk是包含api宣告的開發包,mfc是封裝api的類庫.

sdk和api有什麼區別

原答案 舉個例子 在這裡,乙個簡單的功能鏈條我將它分為三個組成部分 1 客戶端組裝資料 2 客戶端使用組裝的資料來請求服務端 或者作業系統 的 api 3 服務端 或者作業系統 的 api 處理資料並返回處理結果 結合這個鏈條得出結論 1 api為細粒度的功能介面 2 sdk包含第2 3步 3 sd...

關於sdk和api有什麼區別

原答案 舉個例子 在這裡,乙個簡單的功能鏈條我將它分為三個組成部分 1 客戶端組裝資料 2 客戶端使用組裝的資料來請求服務端 或者作業系統 的 api 3 服務端 或者作業系統 的 api 處理資料並返回處理結果 結合這個鏈條得出結論 1 api為細粒度的功能介面 2 sdk包含第2 3步 3 sd...

API和Web服務測試之間有什麼區別?

開發人員可以建立或使用多種方法使應用程式可以來回通訊。當然,qa人員必須評估軟體的這些重要元件。api和web服務都是應用程式交換資料的兩種方式。但是,api和web服務測試是不同的工作。為了有效地測試每個元件,需要了解它如何符合應用程式的模型,並使用全面的qa方法,從壓力測試到安全掃瞄再到功能測試...