一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

SDK與MFC有什么區(qū)別

 我愛編程我愛c 2012-04-15
SDK與MFC有什么區(qū)別,它們的主要作用是什么?
2011-06-08 8:20

SDK與MFC有什么區(qū)別,它們的主要作用是什么?

這是兩種編寫Windows程序的方法...
用VC編寫Windows程序有兩種:1. Windwos c方式(SDK),2. C++方式:即對(duì)SDK函數(shù)進(jìn)行包裝,如VC的MFC,BCB的OWL等。SDK編程就是直接調(diào)用Windows的API進(jìn)行編程,平時(shí)人們常說"用SDK寫程序"就是指用Windows的API函數(shù)來寫程序,API由上千個(gè)API函數(shù)組成(Win95的API有兩千多個(gè))。而MFC是API的封閉,結(jié)合面向?qū)ο蟪绦蛟O(shè)計(jì)的繼承性和多態(tài)性組成一個(gè)個(gè)的"類",共由一百多個(gè)類組成。盡管MFC比SDK方便,但要深入VC,直接去學(xué)MFC卻是不明智的選擇。只有在熟悉了MFC的運(yùn)行機(jī)制的情況下,才有可能深入下去。所以學(xué)VC最好是先學(xué)用SDK編寫程序,在此期間深入掌握Windows操作系統(tǒng)的工作原理和各API函數(shù)的應(yīng)用,然后再深入MFC. SDK是基于C語言的,而MFC是基于C++的,這是最根本的區(qū)別。MFC主要封裝的是界面、文件、WinInet和線程等函數(shù)。MFC除了封裝API,最重要的是它的體系結(jié)構(gòu),它所使用的Doc/View結(jié)構(gòu)是SDK中沒有的,這種架構(gòu)是比較特殊的。盡管Doc/View結(jié)構(gòu)不是微軟的發(fā)明,但它是MFC的特色。微軟開發(fā)Windows時(shí)使用的是C語言,所以最初設(shè)計(jì)SDK時(shí)并沒有考慮C++。

============================================================

C、C++、API、SDK、IDE、VC++、MSDN、MFC、OWL、VCL、ATL 、BCB

     C/C++都是一種編程語言,程序員用它來創(chuàng)作(我喜歡用創(chuàng)作這個(gè)詞,讓寫代碼有一些藝術(shù)氣息...)各種各樣的程序,簡(jiǎn)單如計(jì)算閏年,復(fù)雜到一個(gè)系統(tǒng)地實(shí)現(xiàn)。當(dāng)然, 編寫標(biāo)準(zhǔn)C程序的時(shí)候,我們還經(jīng)常會(huì)調(diào)用各種庫函數(shù)來輔助完成某些功能;初學(xué)者使用得最多的C庫函數(shù)就是printf了,這些庫函數(shù)是由你所使用的編譯器廠商提供的。在Windows平臺(tái)下,也有類似的函數(shù)可供調(diào)用;不同的是,這些函數(shù)是由Windows操作系統(tǒng)本身提供的。

    Windows操作系統(tǒng)提供了各種各樣的函數(shù),以方便我們開發(fā)Windows應(yīng)用程序。這些函數(shù)是Windows操作系統(tǒng)提供給應(yīng)用程序編程的接口(Application Programming Interface),簡(jiǎn)稱為API函數(shù)。我們?cè)诰帉慦indows程序時(shí)所說的API函數(shù),就是指系統(tǒng)提供的函數(shù),所有主要的Windows函數(shù)都在Windows.h頭文件中進(jìn)行了聲明。

       使用windows API創(chuàng)建的能在windows上運(yùn)行的程序統(tǒng)稱為windows程序。

       這些API隨著系統(tǒng)的更新升級(jí),他們也是在不斷更新和擴(kuò)充,但是,其行為基本保持不變以保證不同平臺(tái)對(duì)應(yīng)用程序的兼容性,面對(duì)越來越多地API,我們?cè)趺传@取可靠的幫助呢?最大的幫助就是MSDN,你可以把MSDN理解為微軟向開發(fā)人員提供的一套幫助系統(tǒng),其中包含大量的開發(fā)文檔、技術(shù)文章和示例代碼。MSDN包含的信息非常全面,程序員不但可以利用MSDN來輔助開發(fā),還可以利用MSDN來進(jìn)行學(xué)習(xí),從而提高自己。對(duì)于初學(xué)者來說,學(xué)會(huì)使用MSDN并從中汲取知識(shí),是必須要掌握的技能。

      我們還經(jīng)常聽人說Win32 SDK開發(fā),那么什么是SDK呢。SDK的全稱是Software Development Kit,中文譯為軟件開發(fā)包。假如現(xiàn)在我們要開發(fā)呼叫中心,在購(gòu)買語音卡的同時(shí),廠商就會(huì)提供語音卡的SDK開發(fā)包,以方便我們對(duì)語音卡的編程操作。這個(gè)開發(fā)包通常都會(huì)包含語音卡的API函數(shù)庫、幫助文檔、使用手冊(cè)、輔助工具等資源。也就是說,SDK實(shí)際上就是開發(fā)所需資源的一個(gè)集合,再具體點(diǎn)說,你知道CreatePorcess這個(gè)API,那怎么使用,你需要有頭文件,當(dāng)然還需要提供功能的系統(tǒng)DLL庫的引出庫lib,這些都在SDK中?,F(xiàn)在讀者應(yīng)該明白Win32 SDK的含義了吧,即Windows 32位平臺(tái)下的軟件開發(fā)包,包括了API函數(shù)、幫助文檔、微軟提供的一些輔助開發(fā)工具。

  提示:API和SDK是一種廣泛使用的專業(yè)術(shù)語,并沒有專指某一種特定的API和SDK,例如,語音卡API、語音卡SDK、Java API、Java SDK等。自己公開的DLL函數(shù)也可以叫API?。?!   
一般來講,狹義上的API指 MS公開的函數(shù)。比如MSDN中介紹的函數(shù)。    廣義的API可以包括所有的函數(shù),你自己的函數(shù)也算,未公開的也是。    指世界上一切函數(shù)。都可以叫API--pplication Programming Interface ;    SDK也不僅僅指MS的開發(fā)包,你自己的程序如果需要讓別人作2次開發(fā),你就會(huì)提供 一些函數(shù)接口讓別人編程,你提供的材料也叫SDK.  

      有了語言(C\C++),有了開發(fā)資源(SDK)、有了幫助文檔(MSDN),ok,我們可以編寫windows程序了,等等、工具有沒有更好的工具呢,人類之所以進(jìn)步就在于會(huì)使用工具,所以,為了更加高效的開發(fā)程序,一些集成開發(fā)環(huán)境誕生了,其中, Visual   C++就是一個(gè)支持C\C++語言開發(fā)的集成開發(fā)環(huán)境(IDE)。記住,Vc++不是什么新的編程語言,他只是 IDE,只是一個(gè)編程的輔助工具,具體來說,Visual   C++包含了源程序編輯器、C\C++編譯器、MFC和ATL等,其中、MFC和ATL可以簡(jiǎn)單的理解為再次封裝的Windows的系統(tǒng)接口,原生接口就是API 。

      其中,MFC,微軟基礎(chǔ)類(Microsoft Foundation Classes),實(shí)際上是微軟提供的,用于在C++環(huán)境下編寫應(yīng)用程序的一個(gè)框架和引擎,也可以說,MFC是Win API與C++的結(jié)合后的再一次封裝。

      OWL(borland公司,其已經(jīng)逐漸淡處)、VCL(Borland公司--現(xiàn)在已和Inprise合并專--為DELPHI設(shè)計(jì)的,其是由OWL演變的)和MFC(ms專為vc++設(shè)計(jì)的)是不同公司提供的三大類庫,更確切點(diǎn)說,他們都是應(yīng)用框架。

      DELPHI:也是一種集成開發(fā)環(huán)境,不過他支持的語言是源至于pascal的Object Pascal.他使用的框架就是VCL.

       BCB:就是Inprise公司使用了Delphi的IDE和VCL,再配上C++語言推出的開發(fā)環(huán)境C++Builder,很多人很念舊,所以冠以Borland C++ Builder之名,簡(jiǎn)稱為BCB。

      ATL是全新的COM 開發(fā)工具 :---- ATL 是ActiveX Template Library 的縮寫,它是一套C++模板庫。 使用ATL 能 夠 快速地開發(fā)出高效、簡(jiǎn)潔的代碼, 同時(shí)對(duì)COM 組件的開發(fā)提供最大限度 的代碼自動(dòng)生成以及可視化支 持。從Microsoft Visual C++ 5.0 版本開始,Microsoft 把ATL 集成 到Visual C++ 開發(fā)環(huán)境中。

     SDK + C 完全可以進(jìn)行所有的windows程序開發(fā),當(dāng)然,你還可以采用MFC + C++,當(dāng)然,你要用SDK + C++ 也是你的自由,但是MFC + C可是impossible的事情,因?yàn)椋琈FC就是C++寫的,C可不支持類哦...

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    中文字幕不卡欧美在线| 免费在线成人激情视频| 日本免费一区二区三女| 日本理论片午夜在线观看| 国产毛片对白精品看片| 日韩一级一片内射视频4k| 男人和女人草逼免费视频 | 亚洲视频在线观看免费中文字幕| 免费观看一区二区三区黄片| 99久久精品国产日本| av一区二区三区天堂| 成人你懂的在线免费视频| 91在线爽的少妇嗷嗷叫| 国产精品日韩精品一区| 亚洲一区二区三区免费的视频| 九九热视频经典在线观看| 日本中文在线不卡视频| 91福利免费一区二区三区| 精品国产亚洲av成人一区| 国产精品免费无遮挡不卡视频| 国产精品久久精品毛片| 亚洲另类女同一二三区| 国产精品成人免费精品自在线观看 | 毛片在线观看免费日韩| 九九热精彩视频在线播放| 麻豆一区二区三区在线免费| 尹人大香蕉一级片免费看| 国产人妻熟女高跟丝袜| 69久久精品亚洲一区二区| 欧洲日韩精品一区二区三区| 亚洲综合激情另类专区老铁性| 日韩不卡一区二区三区色图| 日韩精品综合免费视频| 大尺度激情福利视频在线观看| 在线观看免费午夜福利| 欧美成人欧美一级乱黄| 精品国产成人av一区二区三区| 成人精品一级特黄大片| 欧美二区视频在线观看| 日本不卡一区视频欧美| 成年人免费看国产视频|