<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  C++語言開發  (http://www.hufushizhe.com/bbs/list.asp?boardid=63)
    ----  Visual C++ 1.0:C++編譯器的終結者  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=63&id=2446)

    --  作者:wangxinxin
    --  發布時間:2010-12-10 15:34:57
    --  Visual C++ 1.0:C++編譯器的終結者
    “唯技術”思想有時能使陷入一種困境,作為一種編程工具(也可以認為是一種技術),Visual C++經歷了許多風波和變革,但縱觀目前幾乎所以有書籍和文章,很少對這種技術進行“跳出圈外”的思考,這也使我寫這篇文章感到無源的苦惱。細想之后,也頗為感慨,愿借此文以激眾家之思!

      Visual C++的發展與C/C++語言、Windows的歷程是分不開的。

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

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

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

      在C/C++發展過程中,C/C++的開發工具也是發展迅速。

      早期的程序員仍然不會忘記Turbo Pascal的集成開發環境IDE的魅力,IDE能使編輯器和編譯器共同工作,在編輯器中寫下源代碼,使用Compile(編譯)命令來啟動編譯器,當編譯器發現錯誤時,它將編輯光標定位到出錯語句處,以便于改正。IDE為程序開發提供一個整體環境。

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

      編輯器之爭

      Visual C++在目前的C/C++編輯器占統治地位不是偶然的,這是由微軟的正確和對手的錯誤造成。

      翻開C/C++編輯器歷史,戰火風云。當Microsoft Visual C++ 1.0 在C/C++開發工具市場獲得了空前的成功之后,Borland的Philippe Kahn也許在和Microsoft的FoxPro For Window一役中被嚇到了,因此急于在Visual C/C++ 1.0之后立刻推出新的Borland C/C++以扳回顏面。由于當時Borland失去了許多的人才,Borland C/C++ 4.0倉促推出后,由于沒有在最后階段修正許多的錯誤,加上加入太多的先進技術,造成了整個產品的不穩定,從而鑄成大錯,陷入窘境。

      在Borland C/C++ 4.0失利之后,Borland為挽回局面,立刻著手開發Borland C/++ 4.0的Patch,當時是稱為Service Pack。但是在4.01版中并沒有完全的解決問題,一直要到4.02才稍為解決一些嚴重的問題,無奈市場已經起了巨大的變化。

      自Borland C/C++ 4.0一役大敗之后,Visual C/C++雖取得了勝利,但此時在C/C++市場上也加入了另外兩個堅強的對手,那就是Symantec C/C++和Watcom C/C++。

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

      Watcom C/C++是以在DOS下能夠產生最好的最優化程序代碼而聞名的,再加入當時最有名的DOS Extender廠商PharLap公司也是使用Watcom C/C++,因此Watcom C/C++在專業的C/C++程序員以及系統程序員心中是第一品牌的C/C++開發工具。為了順應DOS向Windows過度,也為了生存,大約也是在1993,1994年左右Watcom終于推出第一個基于Window平臺的C/C++開發工具。雖然沒有什么特色,但卻以編譯器的優點成為四大C/C++開發工具之一。

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

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

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

      為了迎合市場,支持OLE技術,Borland在Borland C/C++ 4.5的OWL 2.5中推出OCF,但由于沒有MFC的OLE能力強大,也逐漸敗下陣來。雖然后來Borland繼續推出了Borland C/C++ 5.0,5.02,但終因品質和市場原因而結束。

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

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

      Visual C++是沒有3.0的,版本號直接從2.0跳到4.0,以使Visual C++和MFC同步,但這種同步是短暫的,后來,Visual C++和MFC又使用了不同的版本號。

      Visual C++ 4.0引入了Internet的支持,并為Internet編程而設計的新類庫。

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

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

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

      2002年底推出Visual Studio .NET 2002,2003年4月,Visual Studio .NET 2003發布。Visual Studio .NET 2003 包含 Windows .NET Framework 的一個增強版本,并將移動和嵌入式設備,如 Pocket PC 和其他采用 Microsoft Windows CE .NET 操作系統的設備,帶入了 .NET。

      Visual C++ .NET 2003對2002版本進行了許多更新和優化,除界面、庫作了改進之外,還對在 C++托管擴展中創建的Windows 窗體應用程序提供設計器的支持以及提供對項目中生成自動化模型的支持等。

      MFC和Visual C++

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

      早在1989年,Microsoft的程序員們開始試圖將C++和面向對象的編程概念應用于Windows編程中,以編寫出一個可以使Windows編程更加簡便的應用程序框架。他們把這個應用程序框架叫做AFX (AFX這個詞來源于Application Framework,但奇怪的是這個詞組中并沒有包含“X”這個字母)。直到今天,AFX小組早已不存在了,AFX這個名稱也于1994年初不再使用,但在Visual C++和MFC中,AFX的影子卻隨處可見,很多全局函數、結構和宏的標識符都被加上了AFX的前綴。

      最初的AFX版本在經過一年的艱苦之后誕生,卻未能被大多數Windows程序員所接受。AFX的確是經過了精心的規劃和編碼,并且,它也提供了對Windows API的高度抽象,建立了全新的面向對象的AFX API,但最要命的是AFX API庫根本不兼容于現有的Windows API。由此導致的最嚴重后果是大量的SDK代碼無法移植,而程序員將學習兩種完全不同的編程方法。

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

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

      但是,在Visual C++ 5.0中包括的MFC版本不是MFC 5.0,而是MFC 4.21。發展到今天,MFC已發展成一個穩定和涵蓋極廣的C++類庫,為成千上萬的Win32程序員所使用。MFC庫是可擴展的,它和Windows技術的最新發展到目前為止始終是同步的。并且,MFC類庫使用了標準的Windows命名約定和編碼格式,所以有經驗的Windows SDK程序員很容易過渡到MFC。MFC結合了Windows SDK編程概念和面向對象的程序設計技術,從而具有極大靈活性和易用性。

    主站蜘蛛池模板: 黄色污污视频下载| 性欧美vr高清极品| 国产V亚洲V天堂无码网站| china同性基友gay勾外卖| 蕾丝av无码专区在线观看| 妈妈的朋友在8完整有限中字5| 加勒比色综合久久久久久久久| 500第一福利正品蓝导航| 怡红院色视频在线| 亚洲国产精品嫩草影院久久| 精品国产乱码久久久久软件| 国产精品亚洲精品爽爽| 中国女人内谢69xxx| 最近免费韩国电影hd视频| 免费高清资源黄网站在线观看 | 女人张开腿等男人桶免费视频| 亚洲av永久无码精品秋霞电影影院| 青青草成人在线| 夜夜躁狠狠躁日日躁视频 | 99久久人妻精品免费一区| 日本国产在线视频| 后入内射欧美99二区视频| 99久久精品午夜一区二区 | 精品一区二区久久| 国产欧美va欧美va香蕉在| www.人人干| 成人在线观看免费| 亚洲av无码电影网| 欧美牲交a欧美牲交aⅴ图片| 四虎最新免费观看网址| 韩国理论片中文字幕版电影| 成人网站在线进入爽爽爽| 亚洲精品成人网久久久久久| 精品久久洲久久久久护士| 国产国语对白露脸正在播放| 67194老司机精品午夜| 国产黄三级高清在线观看播放| 一级黄色片在线观看| 成人永久免费高清| 久久天天躁狠狠躁夜夜网站| 日韩网站在线观看|