波多在线播放_激情深爱五月_久久欧美精品_成人超碰_国产久_www.pixiv.moe


曙海教育集團(tuán)論壇開發(fā)語(yǔ)言培訓(xùn)專區(qū)C++語(yǔ)言開發(fā) → Visual C++ 1.0:C++編譯器的終結(jié)者


  共有6526人關(guān)注過(guò)本帖樹形打印

主題:Visual C++ 1.0:C++編譯器的終結(jié)者

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
Visual C++ 1.0:C++編譯器的終結(jié)者  發(fā)帖心情 Post By:2010-12-10 15:34:57

“唯技術(shù)”思想有時(shí)能使陷入一種困境,作為一種編程工具(也可以認(rèn)為是一種技術(shù)),Visual C++經(jīng)歷了許多風(fēng)波和變革,但縱觀目前幾乎所以有書籍和文章,很少對(duì)這種技術(shù)進(jìn)行“跳出圈外”的思考,這也使我寫這篇文章感到無(wú)源的苦惱。細(xì)想之后,也頗為感慨,愿借此文以激眾家之思!

  Visual C++的發(fā)展與C/C++語(yǔ)言、Windows的歷程是分不開的。

  在C語(yǔ)言推出之前,操作系統(tǒng)等系統(tǒng)軟件主要是用匯編語(yǔ)言編寫的(如UNIX操作系統(tǒng))。由于匯編語(yǔ)言依賴于計(jì)算機(jī)硬件,因此程序的可移植性和可讀性就比較差。為了提高程序的可讀性和可移植性,并能實(shí)現(xiàn)匯編語(yǔ)言的某些功能(如匯編語(yǔ)言可以直接對(duì)硬件進(jìn)行操作、對(duì)內(nèi)存地址進(jìn)行操作和位操作等)。于是,C語(yǔ)言便應(yīng)運(yùn)而生了。

  最初的C語(yǔ)言只是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)而提供的一種程序設(shè)計(jì)語(yǔ)言。1973年,貝爾實(shí)驗(yàn)室的K.Thompson和D.M.Ritchie兩人合作把UNIX的90%以上的代碼用C語(yǔ)言改寫(即UNIX第五版)。后來(lái)C語(yǔ)言又作了多次改進(jìn),1978年以后,C語(yǔ)言已先后移植到大、中、小及微型機(jī)上,現(xiàn)在C語(yǔ)言已成為風(fēng)靡全球的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。

  到了80年代,美國(guó)AT&T貝爾實(shí)驗(yàn)室的Bjarne Stroustrup在C語(yǔ)言的基礎(chǔ)上推出了C++程序設(shè)計(jì)語(yǔ)言。由于C++提出了把數(shù)據(jù)和在數(shù)據(jù)之上的操作封裝在一起的類、對(duì)象和方法的機(jī)制,并通過(guò)派生、繼承、重載和多態(tài)性等特征,實(shí)現(xiàn)了人們期待已久的軟件復(fù)用和自動(dòng)生成。這使得軟件,特別是大型復(fù)雜軟件的構(gòu)造和維護(hù)變得更加有效和容易,并使軟件開發(fā)能更自然地反映事物的本質(zhì),從而大大提高了軟件的開發(fā)效率和質(zhì)量。

  在C/C++發(fā)展過(guò)程中,C/C++的開發(fā)工具也是發(fā)展迅速。

  早期的程序員仍然不會(huì)忘記Turbo Pascal的集成開發(fā)環(huán)境IDE的魅力,IDE能使編輯器和編譯器共同工作,在編輯器中寫下源代碼,使用Compile(編譯)命令來(lái)啟動(dòng)編譯器,當(dāng)編譯器發(fā)現(xiàn)錯(cuò)誤時(shí),它將編輯光標(biāo)定位到出錯(cuò)語(yǔ)句處,以便于改正。IDE為程序開發(fā)提供一個(gè)整體環(huán)境。

  C語(yǔ)言產(chǎn)生后,Turbo Pascal發(fā)行了Turbo C,Microsoft相應(yīng)地推出Quick C。雖然Quick C和Turbo C給C編程引進(jìn)許多內(nèi)容,但卻沒(méi)有對(duì)開發(fā)者產(chǎn)生永久性的影響(盡管Turbo C目前仍被用于現(xiàn)行教學(xué)中),其主要原因是二者的編輯器都不怎么好(Quick C編輯器后來(lái)合并到Microsoft Quick Basic中,現(xiàn)在它作為DOS編輯器Edit.com仍存在于Microsoft Windows 95中),其次,DOS下IDE占據(jù)大量?jī)?nèi)存,使程序運(yùn)行空間變得很小。

  編輯器之爭(zhēng)

  Visual C++在目前的C/C++編輯器占統(tǒng)治地位不是偶然的,這是由微軟的正確和對(duì)手的錯(cuò)誤造成。

  翻開C/C++編輯器歷史,戰(zhàn)火風(fēng)云。當(dāng)Microsoft Visual C++ 1.0 在C/C++開發(fā)工具市場(chǎng)獲得了空前的成功之后,Borland的Philippe Kahn也許在和Microsoft的FoxPro For Window一役中被嚇到了,因此急于在Visual C/C++ 1.0之后立刻推出新的Borland C/C++以扳回顏面。由于當(dāng)時(shí)Borland失去了許多的人才,Borland C/C++ 4.0倉(cāng)促推出后,由于沒(méi)有在最后階段修正許多的錯(cuò)誤,加上加入太多的先進(jìn)技術(shù),造成了整個(gè)產(chǎn)品的不穩(wěn)定,從而鑄成大錯(cuò),陷入窘境。

  在Borland C/C++ 4.0失利之后,Borland為挽回局面,立刻著手開發(fā)Borland C/++ 4.0的Patch,當(dāng)時(shí)是稱為Service Pack。但是在4.01版中并沒(méi)有完全的解決問(wèn)題,一直要到4.02才稍為解決一些嚴(yán)重的問(wèn)題,無(wú)奈市場(chǎng)已經(jīng)起了巨大的變化。

  自Borland C/C++ 4.0一役大敗之后,Visual C/C++雖取得了勝利,但此時(shí)在C/C++市場(chǎng)上也加入了另外兩個(gè)堅(jiān)強(qiáng)的對(duì)手,那就是Symantec C/C++和Watcom C/C++。

  Symantec C/C++的Think C/C++在Macintosh上便是非常有名的編譯器,因此早在C/C++領(lǐng)域便有深厚的基礎(chǔ)。在Symantec并購(gòu)了PC上第一個(gè)C/C++編譯器Zortech C/C++之后,Symantec決定進(jìn)入了PC的開發(fā)工具市場(chǎng)。恰逢Borland C/C++ 3.1的幕后支柱Eugene Wang剛好和Philippe Kahn鬧翻,離開了Borland。Symantec重金邀請(qǐng)Eugene Wang,1993年左右,Symantec推出了第一個(gè)Symantec C/C++版本,立刻便獲得了市場(chǎng)的好評(píng)。Symantec C/C++不斷完善,以最完美的、先進(jìn)的集成開發(fā)環(huán)境獲得市場(chǎng)的高度認(rèn)同。

  Watcom C/C++是以在DOS下能夠產(chǎn)生最好的最優(yōu)化程序代碼而聞名的,再加入當(dāng)時(shí)最有名的DOS Extender廠商PharLap公司也是使用Watcom C/C++,因此Watcom C/C++在專業(yè)的C/C++程序員以及系統(tǒng)程序員心中是第一品牌的C/C++開發(fā)工具。為了順應(yīng)DOS向Windows過(guò)度,也為了生存,大約也是在1993,1994年左右Watcom終于推出第一個(gè)基于Window平臺(tái)的C/C++開發(fā)工具。雖然沒(méi)有什么特色,但卻以編譯器的優(yōu)點(diǎn)成為四大C/C++開發(fā)工具之一。

  但是Symantec和Watcom由于自身的實(shí)力和發(fā)展方向,在1993年初選擇了和Microsoft簽約,使用MFC做為它們的開發(fā)工具的C/C++ Framework。而Borland選擇了堅(jiān)持開發(fā)自己的C/C++ Framework,這就是OWL。

  1994年,Microsoft為了對(duì)抗Apple和IBM OS2,推出OLE(Object Linking And Embedding)技術(shù),該技術(shù)由于可以讓W(xué)indow平臺(tái)的文件能夠內(nèi)嵌在不同的應(yīng)用程序中并且能在應(yīng)用程序中進(jìn)行編輯,因此“深入人心”。盡管該技術(shù)被后來(lái)證明是失敗的技術(shù),但卻使Microsoft取得了C/C++開發(fā)工具的勝利。

  由于OLE的復(fù)雜性使得Borland無(wú)法在OWL中實(shí)現(xiàn)此功能,因而就造成了市場(chǎng)的一些負(fù)面影響。Symantec和Watcom由于簽約的是MFC 1.x的版本,而OLE是在MFC 2.0中的技術(shù),Symantec和Watcom吃了大虧。不久以后,Symantec放棄PC的C/C++開發(fā)工具市場(chǎng),轉(zhuǎn)而開始研發(fā)Java開發(fā)工具。而Watcom則被新興而起的Sybase并購(gòu),從此消失。

  為了迎合市場(chǎng),支持OLE技術(shù),Borland在Borland C/C++ 4.5的OWL 2.5中推出OCF,但由于沒(méi)有MFC的OLE能力強(qiáng)大,也逐漸敗下陣來(lái)。雖然后來(lái)Borland繼續(xù)推出了Borland C/C++ 5.0,5.02,但終因品質(zhì)和市場(chǎng)原因而結(jié)束。

  隨后,Windows 3.0出現(xiàn)了。Windows 3.0尤其是3.1,為個(gè)人計(jì)算機(jī)引進(jìn)了真正的IDE時(shí)代。但是,Microsoft卻把精力更多地集中在C編譯器的內(nèi)部支持上,而不是把它的界面升級(jí)到一個(gè)新的時(shí)代。盡管如此,Microsoft C/C++ 7.0卻引入了對(duì)C++的支持,并引進(jìn)了Microsoft Foundation Class庫(kù)1.0版,完善了源代碼。Microsoft C/C++ 8.0成為真正的Windows IDE,這就是Visual C++ 1.0。

  Visual C++ 1.5之后,微軟決定不再將花更多的努力去支持16位編程上。雖然,Visual C++ 2.0仍提供對(duì)16位的支持,但它僅用來(lái)創(chuàng)建32位程序。

  Visual C++是沒(méi)有3.0的,版本號(hào)直接從2.0跳到4.0,以使Visual C++和MFC同步,但這種同步是短暫的,后來(lái),Visual C++和MFC又使用了不同的版本號(hào)。

  Visual C++ 4.0引入了Internet的支持,并為Internet編程而設(shè)計(jì)的新類庫(kù)。

  Visual C++ 5.0還增加了一些新類,但主要是集中在界面的改善上,并提供一個(gè)更好的在線幫助系統(tǒng)、更高級(jí)的宏能力和對(duì)在開發(fā)者組內(nèi)進(jìn)行類和其它代碼共享的支持。5.0中還合并了Active Template Library(ATL),并顯著地改善了編譯器優(yōu)化代碼的能力。

  1998年9月,Microsoft推出了Visual C++ 6.0,它除了保留5.0對(duì)ActiveX的支持外,還支持DHTML,更新了MFC及ATL的類庫(kù),并對(duì)模板也有擴(kuò)充,用戶可以方便地開發(fā)出類似Web瀏覽器界面的應(yīng)用程序。

  2000年7月,在PDC(Professional Developers Conference)會(huì)議上,Microsoft宣布啟動(dòng).NET方案,推出了一個(gè)全新的開發(fā)平臺(tái)Visual Studio.NET,這是Microsoft技術(shù)方向的重大轉(zhuǎn)變。在這個(gè)平臺(tái)上,包括了Visual C++、Visual Basic、Visual FoxPro和C#等開發(fā)工具。
2002年2月推出的Visual Studio.NET雖然有許多不近人意的地方,但是卻讓我們領(lǐng)略了它的強(qiáng)大之處。Visual C++ .NET除對(duì)Microsoft .NET Framework支持和界面及文檔的語(yǔ)言本地化這兩個(gè)最顯著特點(diǎn)外,它與Visual C++ 6.0相比,還包含其他許多新的特性,如Web應(yīng)用程序、C++托管擴(kuò)展、ATL、DCOM、MFC等方面的增強(qiáng)以及ATL Server、的支持等。

  2002年底推出Visual Studio .NET 2002,2003年4月,Visual Studio .NET 2003發(fā)布。Visual Studio .NET 2003 包含 Windows .NET Framework 的一個(gè)增強(qiáng)版本,并將移動(dòng)和嵌入式設(shè)備,如 Pocket PC 和其他采用 Microsoft Windows CE .NET 操作系統(tǒng)的設(shè)備,帶入了 .NET。

  Visual C++ .NET 2003對(duì)2002版本進(jìn)行了許多更新和優(yōu)化,除界面、庫(kù)作了改進(jìn)之外,還對(duì)在 C++托管擴(kuò)展中創(chuàng)建的Windows 窗體應(yīng)用程序提供設(shè)計(jì)器的支持以及提供對(duì)項(xiàng)目中生成自動(dòng)化模型的支持等。

  MFC和Visual C++

  Visual C++的核心是Microsoft基礎(chǔ)類庫(kù),即通常所說(shuō)的MFC。MFC相當(dāng)徹底的封裝了Win32軟件開發(fā)工具包(Software Development Kit,即通常所說(shuō)的SDK)中的結(jié)構(gòu)、功能,它為編程者提供了一個(gè)應(yīng)用程序框架,這個(gè)應(yīng)用程序框架為編程者完成了很多Windows編程中的例行性工作,如管理窗口、菜單和對(duì)話框,執(zhí)行基本的輸入和輸出、使用集合類來(lái)保存數(shù)據(jù)對(duì)象等等,并且,MFC使得在程序中使用很多過(guò)去很專業(yè)、很復(fù)雜的編程課題,如ActiveX、OLE、本地?cái)?shù)據(jù)庫(kù)和開放式數(shù)據(jù)庫(kù)互聯(lián)(Open Database Connectivity,簡(jiǎn)寫為ODBC)、Windows套接字和Internet應(yīng)用程序設(shè)計(jì)等,以及其它的應(yīng)用程序界面特性,如屬性頁(yè)(也叫標(biāo)簽對(duì)話框)、打印和打印預(yù)覽、浮動(dòng)的和可定制的工具條變得更加的容易。

  早在1989年,Microsoft的程序員們開始試圖將C++和面向?qū)ο蟮木幊谈拍顟?yīng)用于Windows編程中,以編寫出一個(gè)可以使Windows編程更加簡(jiǎn)便的應(yīng)用程序框架。他們把這個(gè)應(yīng)用程序框架叫做AFX (AFX這個(gè)詞來(lái)源于Application Framework,但奇怪的是這個(gè)詞組中并沒(méi)有包含“X”這個(gè)字母)。直到今天,AFX小組早已不存在了,AFX這個(gè)名稱也于1994年初不再使用,但在Visual C++和MFC中,AFX的影子卻隨處可見,很多全局函數(shù)、結(jié)構(gòu)和宏的標(biāo)識(shí)符都被加上了AFX的前綴。

  最初的AFX版本在經(jīng)過(guò)一年的艱苦之后誕生,卻未能被大多數(shù)Windows程序員所接受。AFX的確是經(jīng)過(guò)了精心的規(guī)劃和編碼,并且,它也提供了對(duì)Windows API的高度抽象,建立了全新的面向?qū)ο蟮腁FX API,但最要命的是AFX API庫(kù)根本不兼容于現(xiàn)有的Windows API。由此導(dǎo)致的最嚴(yán)重后果是大量的SDK代碼無(wú)法移植,而程序員將學(xué)習(xí)兩種完全不同的編程方法。

  AFX不得不重新做所有的一切,他們所創(chuàng)建的新的應(yīng)用程序框架是一套擴(kuò)展的C++類,它封裝和映射了Windows API,這就是MFC的前身。過(guò)去的AFX小組也變成了MFC小組。最終,MFC的第一個(gè)公開版本于1992年3月隨Microsoft C/C++ 7.0一起推出。那時(shí)距Windows 3.1發(fā)布尚有好幾個(gè)月。在MFC 1.0中還沒(méi)有文檔/視結(jié)構(gòu),但有類CObject和CArchive。在12個(gè)月之后,MFC 2.0隨Microsoft新的編程工具Visual C++ 1.0一道出爐。與MFC 1.0一樣,MFC 2.0仍是16位的,因?yàn)?2位的Windows NT 3.1直到1993年7月才問(wèn)世。在MFC 2.0中,增加了對(duì)文檔/視結(jié)構(gòu)、OLE 1.0、Windows 3.1公用對(duì)話框的支持和消息映射等。在Windows NT 3.1面世一個(gè)月以后,Microsoft推出了32版本的Visual C++和MFC 2.1,它實(shí)際上是MFC 2.0的Win32接口。

  最后一個(gè)16位的Visual C++編譯器是1993年12月推出的Visual C++ 1.5,直到今天,一些為Windows 3.1編寫16位應(yīng)用程序的程序員還在使用這個(gè)版本。1994年9月,32位的MFC 3.0伴隨著Visual C++ 2.0的一道面市,在今天的計(jì)算機(jī)圖書市場(chǎng)上,還有著大量的關(guān)于Visual C++ 2.0和MFC 3.0的圖書出售,因此,可以想象得出Visual C++ 2.0所取得的成功和它所產(chǎn)生的影響。

  但是,在Visual C++ 5.0中包括的MFC版本不是MFC 5.0,而是MFC 4.21。發(fā)展到今天,MFC已發(fā)展成一個(gè)穩(wěn)定和涵蓋極廣的C++類庫(kù),為成千上萬(wàn)的Win32程序員所使用。MFC庫(kù)是可擴(kuò)展的,它和Windows技術(shù)的最新發(fā)展到目前為止始終是同步的。并且,MFC類庫(kù)使用了標(biāo)準(zhǔn)的Windows命名約定和編碼格式,所以有經(jīng)驗(yàn)的Windows SDK程序員很容易過(guò)渡到MFC。MFC結(jié)合了Windows SDK編程概念和面向?qū)ο蟮某绦蛟O(shè)計(jì)技術(shù),從而具有極大靈活性和易用性。

支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

Visual C++ 1.0:C++編譯器的終結(jié)者








簽名
主站蜘蛛池模板: 天干夜天天夜天干天国产电影 | 婷婷在线网 | 四虎884a | 亚洲综合婷婷 | 国产成人18黄网站免费 | 中文字幕国产 | 日本一级毛片不卡免费 | 一级片免费在线播放 | 黑人一区 | 亚洲性猛交xx乱 | 日本不卡高清免费 | 国产一区中文字幕 | 日韩中文字幕在线看 | 中文字幕一区二区三区四区五区 | jizzjizzjizzjizz国产 | 午夜影院在线免费观看 | 麻豆天堂| 欧美一级片在线播放 | 久久国产精品99久久久久久牛牛 | 亚欧精品一区二区三区四区 | 国产精品a在线观看香蕉 | 国产精品1区2区3区 国产成人aaa在线视频免费观看 | 一级毛片免费在线播放 | 日韩视频免费 | 久久久精 | 久久国产免费观看精品 | 日韩在线无 | 91短视频免费 | 99九九精品视频 | 日韩在线观看中文字幕 | 亚洲美女综合 | 青娱分类视频精品免费2 | 欧美精品1区2区 | 亚洲欧洲一区二区 | 欧美福利 | 亚洲精品久久久久中文字幕二区 | 久久伊人色综合 | 性高湖久久久久久久久aaaaa | 午夜精品 | 先锋资源站 | 色婷婷综合久久久中字幕精品久久 |