下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C,C+,VC+有什么區(qū)別C語(yǔ)言是一種古老而又經(jīng)久不衰的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,大約誕生于上個(gè)世紀(jì)60年代。 由于它的設(shè)計(jì)有很多優(yōu)點(diǎn),多年以來(lái)深受廣大程序設(shè)計(jì)人員的喜愛(ài),并逐漸淘汰了很多其它 程序設(shè)計(jì)語(yǔ)言。我們平時(shí)使用的大多數(shù)軟件都是用C語(yǔ)言開(kāi)發(fā)的。很多后來(lái)出現(xiàn)的一些語(yǔ)言 也沿用了很多它的東西。C語(yǔ)言的編程方式是一種稱(chēng)為面向過(guò)程的開(kāi)發(fā)方式。也就是說(shuō),解 決問(wèn)題的時(shí)候,程序員需要思考計(jì)算機(jī)應(yīng)該如何一步一步完成這個(gè)問(wèn)題,然后將相應(yīng)過(guò)程轉(zhuǎn) 化為代碼。當(dāng)軟件變得越來(lái)越復(fù)雜,代碼越來(lái)越長(zhǎng)的時(shí)候,一個(gè)人的腦力有限,用面向過(guò)程的方法 很難開(kāi)發(fā),往往寫(xiě)著后面的,就忘了前面寫(xiě)了什么了。而且復(fù)雜軟件往往需要很多人協(xié)同
2、開(kāi) 發(fā),更加大了開(kāi)發(fā)難度。一種稱(chēng)為面向?qū)ο蟮能浖_(kāi)發(fā)方法應(yīng)運(yùn)而生。面向?qū)ο蟮乃枷胗?幾句話很難說(shuō)清楚。國(guó)內(nèi)的計(jì)算機(jī)教材在講到這里的時(shí)候往往也都說(shuō)不清楚什么叫面向?qū)?象。這個(gè)詞語(yǔ)也許只能意會(huì)不能言傳吧。需要開(kāi)發(fā)過(guò)一些相關(guān)軟件才能領(lǐng)會(huì)。這里還是不具 體說(shuō)了吧。C語(yǔ)言不是面向?qū)ο蟮模绦騿T又離不開(kāi)C語(yǔ)言,因此有人在C語(yǔ)言的基礎(chǔ)上 添加了面向?qū)ο蟮墓δ?,就是C+.同時(shí),C+修改了 C語(yǔ)言中一些不方便的規(guī)定,使C語(yǔ)言 用起來(lái)更方便了。這里需要注意:C+是在C語(yǔ)言的基礎(chǔ)上發(fā)展來(lái)的,但是并不是C+比C語(yǔ)言高級(jí),兩者的編程思想不一 樣,應(yīng)用的領(lǐng)域也不一樣。在各自的領(lǐng)域,誰(shuí)也不能替代誰(shuí)。而且,windows操
3、作系統(tǒng)出現(xiàn) 以后,開(kāi)發(fā)windows平臺(tái)的圖形界面程序成為一大難題。用C語(yǔ)言雖然能開(kāi)發(fā),但是程序員 要花費(fèi)很大的精力處理圖形界面。同時(shí),windows平臺(tái)圖形界面的程序又都有很多相似點(diǎn)。 為了解放程序員,讓他們把精力主要放在程序功能上,而不是放在圖形界面上,microsoft 公司推出了 visual系列軟件開(kāi)發(fā)環(huán)境,包括為C+程序員提供的Visual C+.程序員能用C+ 語(yǔ)言在其上開(kāi)發(fā)圖形界面的軟件。微軟隨Visual C+提供了很多用于顯示W(wǎng)indows界面的庫(kù) 函數(shù)??梢哉f(shuō)Visual C+就是C+加上windows圖形界面。那是不是想學(xué)C+和C語(yǔ)言的話,只要去學(xué)Visual C+就行
4、了呢?大錯(cuò)特錯(cuò)!市面上任 何一本Visual C+教材都是假設(shè)用戶(hù)已經(jīng)掌握了 C+語(yǔ)言,重點(diǎn)在講和Windows程序設(shè)計(jì)相 關(guān)的東西,而且往往都要講MFC.沒(méi)有C+基礎(chǔ),根本無(wú)法理解MFC的任何東西。很多人急功近利,覺(jué)得花費(fèi)半年甚至一年時(shí)間學(xué)習(xí)C+.連個(gè)圖形界面的程序都開(kāi)發(fā)不出 來(lái),太不劃算。這種想法也是錯(cuò)誤的。世界上的軟件只有一部分具有圖形 界面,運(yùn)行在Windows 平臺(tái),需要用Visual C+開(kāi)發(fā)。學(xué)好了 C+,即使不學(xué)Visual C+,也是大有作為的。還有很多人,要學(xué)C+或者C語(yǔ)言,先整個(gè)Visual C+裝上。其實(shí)這是一種誤區(qū)。C+ 是一門(mén)編程語(yǔ)言,而VC只是一個(gè)IDE,是一個(gè)工
5、具。C+是與平臺(tái)無(wú)關(guān)的,VC只能在Windows 跑,學(xué)習(xí)VC,更多是學(xué)Windows編程。我們學(xué)習(xí)應(yīng)該先學(xué)編程語(yǔ)言,然后再具體的學(xué)習(xí)與平 臺(tái)相關(guān)的東西。把東西都放在一起來(lái)學(xué),保證亂! Visual C+操作復(fù)雜,而且?guī)椭_(kāi)發(fā)者做 了很多事情。對(duì)于初學(xué)者來(lái)說(shuō),操作復(fù)雜的話要花很多時(shí)間用在掌握Visual C+的用法上。 幫開(kāi)發(fā)者做的那些事情,往往是初學(xué)者需要了解的,自己親手做一下,對(duì)學(xué)習(xí)更有好處。C+、VC+、MFC這三都到底有什么區(qū)別和聯(lián)系呀?C+是純粹的編程語(yǔ)言;VC+是編程環(huán)境,即平常所說(shuō)的IDE (即Integrated Development Environment,是“集成開(kāi)發(fā)環(huán)境
6、”的英文縮寫(xiě));MFC是隨微軟VC+開(kāi)發(fā)工 具宣布的類(lèi)庫(kù)。詳細(xì)說(shuō):MFC,微軟基本類(lèi)(Microsoft Foundation Classes),實(shí)際 上是微軟供給的用于在C+環(huán)境下編寫(xiě)應(yīng)用程序的一個(gè)框架和引擎;VC+是WinDOS下開(kāi)發(fā)人 員使用的專(zhuān)業(yè)C+ SDK(SDK,Standard SoftWare Develop Kit,專(zhuān)業(yè)軟件開(kāi)發(fā)平臺(tái)),MFC就 是掛在它之上的一個(gè)幫助軟件開(kāi)發(fā)包。MFC作為與VC+血肉相連的部分(注意C+和VC+的 區(qū)別:C+是一種程序設(shè)計(jì)語(yǔ)言,是一種大家都承認(rèn)的軟件編制的通用規(guī)范,而VC+只是一個(gè) 編譯器,或者說(shuō)是一種“編譯器+源程序編輯器”的IDE,這跟P
7、ascal和Delphi的關(guān)系是 一個(gè)道理:Pascal是Delphi的語(yǔ)言基本,Delphi使用Pascal規(guī)范來(lái)進(jìn)行Win下應(yīng)用程序的 開(kāi)發(fā)和編譯。但不同于Basic語(yǔ)言和VB的關(guān)系:Basic語(yǔ)言在VB開(kāi)發(fā)出來(lái)被應(yīng)用的年代已 經(jīng)成了 Basic語(yǔ)言的新規(guī)范,VB新加的Basic語(yǔ)言要素,如面向?qū)ο蟪绦蛟O(shè)計(jì)的要素,是一 種性質(zhì)上的飛躍,使VB既是一個(gè)IDE,又成長(zhǎng)成一個(gè)新的程序設(shè)計(jì)語(yǔ)言),MFC同Borland C+ 集成的VCL 一樣,是一個(gè)非外掛式的軟件包、類(lèi)庫(kù),只不過(guò)MFC類(lèi)是微軟為VC+專(zhuān)配的罷了。MFC是Win API與C+的結(jié)合。API,即微軟供給的WinDOS下應(yīng)用程序的編程
8、語(yǔ)言接口, 是一種軟件編程的規(guī)范,但本身不是一種程序開(kāi)發(fā)語(yǔ)言,可以允許用戶(hù)使用各種各樣的第三 方(如我是一方,微軟是一方,Borland就是第三方)的編程語(yǔ)言來(lái)進(jìn)行對(duì)WinDOS下應(yīng)用程 序的開(kāi)發(fā),使這些被開(kāi)發(fā)出來(lái)的應(yīng)用程序能在WinDOS下運(yùn)行。比如VB,VC+,Java,Dehpi 編程語(yǔ)言函數(shù)實(shí)質(zhì)上全部源于API,因此用它們開(kāi)發(fā)出來(lái)的應(yīng)用程序都能工作在WinOS的消 息機(jī)制和繪圖里,遵守WinDOS作為一個(gè)操作系統(tǒng)的內(nèi)部實(shí)現(xiàn)。這其實(shí)也是一種必要,微軟如 果不供給API,這個(gè)世上對(duì)Win編程的工作就不會(huì)存在,微軟的產(chǎn)品就會(huì)迅速?gòu)臅r(shí)尚變成垃 圾,上面說(shuō)到MFC是微軟對(duì)API函數(shù)的專(zhuān)用C+封裝
9、,這種結(jié)合一方面讓用戶(hù)使用微軟的專(zhuān) 業(yè)C+ SDK來(lái)進(jìn)行Win下應(yīng)用程序的開(kāi)發(fā)變得容易,因?yàn)镸FC是對(duì)API的封裝,微軟做了大 量的工作,暗藏了好多程序開(kāi)發(fā)人員在Win下用C+ & MFC編制軟件時(shí)的大量?jī)?nèi)節(jié),如應(yīng)用 程序?qū)崿F(xiàn)消息的處理,設(shè)備環(huán)境繪圖,這種結(jié)合是以便利為目的的,必定要付出一定代價(jià)(這 是微軟的一向作風(fēng)),因此就造成了 MFC對(duì)類(lèi)封裝中的一定程度的的冗余和迂回,但這是可 以接受的。最后要明白MFC不只是一個(gè)功效單純的界面開(kāi)發(fā)系統(tǒng)。它供給的類(lèi)絕大部分用來(lái)進(jìn)行 界面開(kāi)發(fā),關(guān)聯(lián)一個(gè)窗口的動(dòng)作,但它供給的類(lèi)中有好多類(lèi)不與一個(gè)窗口關(guān)聯(lián),即類(lèi)的作用 不是一個(gè)界面類(lèi),不實(shí)現(xiàn)對(duì)一個(gè)窗口對(duì)象的把持
10、(如創(chuàng)建、銷(xiāo)毀),而是一些在WinDOS (用 MFC編寫(xiě)的程序絕大部分都在WinDOS中運(yùn)行)中實(shí)現(xiàn)內(nèi)部處理的類(lèi),如數(shù)據(jù)庫(kù)的管理類(lèi)等。 學(xué)習(xí)中最應(yīng)花費(fèi)時(shí)間的是消息和設(shè)備環(huán)境,對(duì)C+和MFC的學(xué)習(xí)中最難的部分是指針,C+面 向?qū)ο癯绦蛟O(shè)計(jì)的其它部分,如數(shù)據(jù)類(lèi)型、流程把持都不難。建議學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)C+版。MFC是微軟封裝了的API。什么意思呀? windows作為一個(gè)供給功效強(qiáng)大的應(yīng)用程序接 口編程的操作系統(tǒng),的確便利了許多程序員,傳統(tǒng)的Win32開(kāi)發(fā)(直接使用windows的接口 函數(shù)API)對(duì)于程序員來(lái)說(shuō)非常的困難,因?yàn)?,API函數(shù)實(shí)在太多了,而且名稱(chēng)很亂,從零構(gòu) 架一個(gè)窗口動(dòng)輒就是上百行的代
11、碼。MFC是面向?qū)ο蟪绦蛟O(shè)計(jì)與Application framework的 完美結(jié)合,他將傳統(tǒng)的API進(jìn)行了分類(lèi)封裝,并且為你創(chuàng)建了程序的一般框架。MFC是對(duì) WindowsAPI的封裝,大大簡(jiǎn)化了我們的工作;學(xué)VC主要就是要學(xué)MFC,大約有100多個(gè)類(lèi) 但常用的也就二三十個(gè)。應(yīng)該象背4級(jí)單詞一樣將這些常用類(lèi)搞懂;當(dāng)然不要死記,要通過(guò) 看輔助、看例子、動(dòng)手練習(xí)來(lái)學(xué)會(huì)它們;而且,并非每個(gè)類(lèi)的內(nèi)部的所有函數(shù)都要學(xué)會(huì),要 日積月累。如果真的想成為高手,做個(gè)筆記本把自己認(rèn)為重要的類(lèi)、函數(shù)記下來(lái),隨時(shí)學(xué)習(xí), 也是很好的突擊方式。有趣的是,MFC使用“Afx”作為所有的全局函數(shù)的前綴,“afx”作為全局變
12、量的前 綴。因?yàn)樵贛FC的早期開(kāi)發(fā)階段它叫“ Application Framework Extensions ”縮寫(xiě)為“AFX”。 AFX供給了對(duì)Windows API的高度抽象,建立了全新的面向?qū)ο蟮腁FX API,但它對(duì)于新手來(lái) 說(shuō)太龐雜了,所以AFX小組不得不重新開(kāi)始。后來(lái)他們創(chuàng)建了一組C+類(lèi),這就是MFC。MFC 這個(gè)名字被采用得太晚了以至于沒(méi)來(lái)得及修改這些引用。重要的MFC:CWnd:窗口,它是大多數(shù)“看得見(jiàn)的東西”的父類(lèi)(Windows里幾乎所有看得見(jiàn)的東西 都是一個(gè)窗口,大窗口里有許多小窗口),比如視圖CView、框架窗口 CFrameWnd、工具條 CToolBar、對(duì)話框C
13、Dialog、按鈕CButton,etc; 一個(gè)例外是菜單(CMenu)不是從窗口派生 的。該類(lèi)很大,一開(kāi)始也不必學(xué),知道就行了。CDocument文檔,負(fù)責(zé)內(nèi)存數(shù)據(jù)與磁盤(pán)的交互。最重要的是OnOpenDocument(讀 A),OnSaveDocument (寫(xiě)盤(pán)),Serialize (讀寫(xiě))。CView視圖,負(fù)責(zé)內(nèi)存數(shù)據(jù)與用戶(hù)的交互。包含數(shù)據(jù)的顯示、用戶(hù)操作的響應(yīng)(如菜單 的選取、鼠標(biāo)的響應(yīng))。最重要的是OnDraw(重畫(huà)窗口),通常用CWnd:Invalidate()來(lái)啟動(dòng) 它。另外,它通過(guò)消息映射表處理菜單、工具條、快捷鍵和其他用戶(hù)消息。你自己的許多功 效都要加在里面,你打交道最多的
14、就是它。CDC設(shè)備文本。無(wú)論是顯示器還是打印機(jī),都是畫(huà)圖給用戶(hù)看。這圖就抽象為CDC。CDC 與其他GDI (圖形設(shè)備接口)一起,完成文字和圖形、圖像的顯示工作。把CDC想象成一張 紙,每個(gè)窗口都有一個(gè)CDC相聯(lián)系,負(fù)責(zé)畫(huà)窗口。CDC有個(gè)常用子類(lèi)CClientDC (窗口客戶(hù)區(qū)), 畫(huà)圖通常通過(guò)CClientDC完成。CDialog對(duì)話框CWinApp應(yīng)用程序類(lèi)。似于C中的main函數(shù),是程序執(zhí)行的入口和管理者,負(fù)責(zé)程序建 立、消滅,主窗口和文檔模板的建立。最常用函數(shù)InitInstance():初始化。CGdiObject及子類(lèi),用于向設(shè)備文本畫(huà)圖。它們都需要在使用前選進(jìn)DC。CPen筆,畫(huà)線CBrush刷子,填充CFont字體,把持文字輸出的字體CBitmap 位圖CPalette調(diào)色板CRgn區(qū)域,指定一塊區(qū)域可以用于做特殊處理。CFile文件。最重要的不外是Open (打開(kāi)),Read (讀入),Write (寫(xiě))CString字符串。封裝了 C中的字符數(shù)組,非常實(shí)用。CPo
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度衛(wèi)星導(dǎo)航系統(tǒng)服務(wù)合同
- 2024天然氣運(yùn)輸物流信息化建設(shè)合同
- 2024常見(jiàn)簽訂勞動(dòng)合同陷阱
- 2024年工程項(xiàng)目驗(yàn)收與交付合同
- 2024年建筑工程混凝土專(zhuān)項(xiàng)分包協(xié)議
- 2024年度噸不銹鋼帶打印功能電子地磅秤技術(shù)支持合同
- 2024年大數(shù)據(jù)服務(wù)合作協(xié)議
- 2024年度環(huán)保項(xiàng)目工程設(shè)計(jì)與施工合同
- 2024年度電子商務(wù)平臺(tái)技術(shù)支持與運(yùn)營(yíng)服務(wù)合同
- 2024年度水果購(gòu)銷(xiāo)合同
- 污泥( 廢水)運(yùn)輸服務(wù)方案(技術(shù)方案)
- 公司章程范本杭州工商docx
- 職業(yè)院校面試題目及答案
- 全護(hù)筒跟進(jìn)旋挖施工方案
- 海水淡化處理方案
- 初中數(shù)學(xué)基于大單元的作業(yè)設(shè)計(jì)
- 小學(xué)一年級(jí)下冊(cè)數(shù)學(xué)期末考試質(zhì)量分析及試卷分析
- 原材料情況說(shuō)明范本
- 相鄰企業(yè)間安全管理協(xié)議
- 裝飾裝修工程售后服務(wù)具體措施
- 乙炔發(fā)生器、電石庫(kù)安全檢查表
評(píng)論
0/150
提交評(píng)論