說(shuō)起VC,有人想到維生素C(維C),有人想到風(fēng)險(xiǎn)投資(venture capital), 程序員們尤其是做底層開(kāi)發(fā)的程序員或老程序員們第一感覺(jué)肯定會(huì)想到Visual C++6.0。為什么是6.0而不是其它的版本?這里的原因就不用我再多講了,因?yàn)樘?jīng)典了!這個(gè)經(jīng)典已經(jīng)有了10年的光榮歷史,微軟的Visual Studio系列也已經(jīng)發(fā)展到了Visual Studio 2010。漫長(zhǎng)的輝煌中Visual C++6.0也暴露出了一些問(wèn)題,在這篇文章中我們將從Visual C++6.0的問(wèn)題和Visual C++2010的新特性兩個(gè)方面向大家介紹,也可以說(shuō)是Visual C++2010 PK Visual C++6.0。
VC++ 6.0的問(wèn)題 VC++ 6.0是Visual Studio 6.0中的一種重要編程語(yǔ)言,也是中國(guó)C++開(kāi)發(fā)人員使用最多的開(kāi)發(fā)工具之一。 Visual C++是構(gòu)建Windows平臺(tái)下應(yīng)用程序功能最強(qiáng)大而又最復(fù)雜的工具,是目前世界上使用最多的開(kāi)發(fā)工具之一,應(yīng)用極度廣泛,從桌面應(yīng)用程序到服務(wù)器程序,從系統(tǒng)軟件到應(yīng)用軟件,圖形圖像,語(yǔ)音技術(shù),設(shè)備驅(qū)動(dòng),網(wǎng)絡(luò)安全,加密解密等等幾乎無(wú)處不在。主流的3 種操作系統(tǒng)Windows,Linux,Unix內(nèi)核都是用C語(yǔ)言和匯編語(yǔ)言寫的,而上層的高級(jí)特性都是用C++編寫。 直到今天,Visual C++6.0仍然占據(jù)著C++開(kāi)發(fā)工具的絕對(duì)優(yōu)勢(shì)的地位。自從微軟從2000年開(kāi)始推行.NET戰(zhàn)略以來(lái),其核心的編程語(yǔ)言是C#,從那個(gè)時(shí)候,C++的支持力度就開(kāi)始不斷的下滑,雖然Visual C++也有幾次更新,但都不是很令人滿意,更靈人焦慮的是,有些開(kāi)發(fā)者開(kāi)始懷疑Visual C++的前途。盡管Visual C++的一些快捷開(kāi)發(fā)被其他開(kāi)發(fā)語(yǔ)言所取代,由于C++可以與操作系統(tǒng)的天生的曖昧關(guān)系,能夠與C語(yǔ)言無(wú)縫結(jié)合,所以Visual C++不可能被淘汰,尤其是對(duì)于底層開(kāi)發(fā)。盡管Visual C++ 6.0很強(qiáng)大,是編程語(yǔ)言里一再受寵的幸運(yùn)兒。但是Visual C++6.0已經(jīng)成了昨日黃花,尤其讓所有Visual C++6.0開(kāi)發(fā)人員郁悶的是Visual C++6.0開(kāi)發(fā)的界面還停留在早期的水平上,界面粗糙,操作復(fù)雜,比起現(xiàn)在華麗而又奪人眼目的界面設(shè)計(jì),更是遜色不少。而且Visual C++6.0也不完全符合C++標(biāo)準(zhǔn)。 正是由于Visual C++6.0的界面設(shè)計(jì)還停留在Windows 98時(shí)期的水平,操作復(fù)雜,再加上它不是完全符合C++標(biāo)準(zhǔn),在代碼和BUG跟蹤調(diào)試上異常復(fù)雜,這也提高了踏入VC++開(kāi)發(fā)的門欖。但是隨著Visual C++2010的推出,全面支持最新的C++標(biāo)準(zhǔn)、改善了IDE的效率,并且引入了很多新的特性,這些功能的增強(qiáng),大大提高程序員們的開(kāi)發(fā)效率,帶來(lái)更高的代碼生產(chǎn)力與開(kāi)發(fā)的便捷。 Visual C++2010 新特性 Visual C++2010為所有的VC++開(kāi)發(fā)人員做了貼心而又周全的考慮,下面我們從可視化設(shè)計(jì)、人性化使用、安全可靠、支持C++新標(biāo)準(zhǔn)和部署簡(jiǎn)潔等方面介紹Visual C++2010的新特性。 (1)Ribbion界面設(shè)計(jì)可視化 在Visual C++6.0開(kāi)發(fā)里面,界面簡(jiǎn)單丑陋是其中一個(gè)不爽的地方。盡管在Visual C++ 2008里面對(duì)Ribbion功能有所改善,但是仍不能進(jìn)行可視化設(shè)計(jì),Visual C++ 2010新增了Windows7的風(fēng)格,同時(shí)最大的革新就是實(shí)現(xiàn)了可視化設(shè)計(jì),很容易設(shè)計(jì)出漂亮的程序界面。 下面我們體驗(yàn)一下Visual C++ 2010界面可視化設(shè)計(jì)的特性。具體操作步驟如下: 1. 打開(kāi)Microsoft Visual Studio 2010,點(diǎn)擊“文件->新建->項(xiàng)目”,打開(kāi)“新建項(xiàng)目”窗體 2. 在“新建項(xiàng)目”窗體中,選擇“Visual C++”節(jié)點(diǎn)中的“CLR”,然后在“模板”窗格中選擇“Windows 窗體應(yīng)用程序”。名稱輸入“WinFormDemo”。 3. 隨即打開(kāi)Windows 窗體設(shè)計(jì)器,出現(xiàn)Form1 窗體 4.設(shè)置窗體屬性,Text為WinFormDemo;添加一個(gè)Label,一個(gè)Button,一個(gè)DateTimePicker,具體如下:
6.雙擊btnExit,輸入如下代碼: 7. 按“F5”運(yùn)行 (2)更加人性化設(shè)計(jì) Visual C++ 2010也對(duì)于開(kāi)發(fā)人員做了很多人性化設(shè)計(jì),以前的Visual C++版本,經(jīng)常出現(xiàn)假死,例如頭文件編輯,改變項(xiàng)目設(shè)置,配置項(xiàng)目的物理分布,新增控件等等,微軟都做了很多調(diào)整。同時(shí)有了改進(jìn)的錯(cuò)誤智能感知支持,會(huì)在錯(cuò)誤下方顯示紅色的波浪線,同時(shí)還提供了錯(cuò)誤列表窗口,在窗口中雙擊列表中具體的項(xiàng),自動(dòng)定位到錯(cuò)誤的位置,遠(yuǎn)遠(yuǎn)勝過(guò)了以前使用的Visual Assist。 在包含頭文件時(shí),也增加了自動(dòng)完成和過(guò)濾功能。鍵入 #include 時(shí),集成開(kāi)發(fā)環(huán)境將自動(dòng)創(chuàng)建一個(gè)包含有效的頭文件的下拉列表供您選擇。如果你繼續(xù)輸入一個(gè)文件名,集成開(kāi)發(fā)環(huán)境將自動(dòng)根據(jù)您的輸入加以過(guò)濾。在任何時(shí)候,你都可以根據(jù)這個(gè)列表來(lái)選擇你想要包含的文件。因此,這一功能可以讓程序員快速地包含那些尚不確切知道文件名的文件。 (3)重新啟動(dòng)管理器增強(qiáng)了穩(wěn)健性和可靠性 Visual C++ 2010新增了重新啟動(dòng)管理器。重新啟動(dòng)管理器是Visual Studio for Windows Vista 的一項(xiàng)新增功能,增加了在應(yīng)用程序意外關(guān)閉或重新啟動(dòng)的情況下對(duì)應(yīng)用程序的支持。重新啟動(dòng)管理器的行為與應(yīng)用程序的類型有關(guān),如果是文檔編輯器之類的應(yīng)用程序,重新啟動(dòng)管理使應(yīng)用程序器能夠自動(dòng)保存已經(jīng)打開(kāi)的文檔的狀態(tài)和內(nèi)容,在程序異常的時(shí)候,能夠保存運(yùn)行時(shí)的數(shù)據(jù),自動(dòng)恢復(fù)到未發(fā)生異常時(shí)的情況,從而提高了程序的穩(wěn)健性與可靠性。如果應(yīng)用程序不是文檔編輯器,則重新啟動(dòng)管理器將重新啟動(dòng)應(yīng)用程序,但默認(rèn)情況下無(wú)法保存應(yīng)用程序的狀態(tài)。 重新啟動(dòng)后,根據(jù)不同的應(yīng)用程序,有任務(wù)對(duì)話框、Windows 消息框等消息提示框,供用戶選擇是否還原到自動(dòng)保存前的狀態(tài),如果用戶選擇不還原,重新啟動(dòng)管理器將丟棄臨時(shí)保存的文件 向現(xiàn)有應(yīng)用程序中添加對(duì)重新啟動(dòng)管理器支持的具體步驟是: 1. 在 Visual Studio 中打開(kāi)一個(gè)現(xiàn)有WinFormDemo應(yīng)用程序。 2. 打開(kāi)主應(yīng)用程序的源文件。默認(rèn)情況下,此文件是與應(yīng)用程序同名的 .cpp文件。例如,WinFormDemo的主應(yīng)用程序源文件是WinFormDemo.cpp。 3. 查找主應(yīng)用程序的構(gòu)造函數(shù)。例如,如果項(xiàng)目為MyProject,則構(gòu)造函數(shù)為 CWinFormDemoApp::CWinFormDemoApp()
4. 將以下代碼行添加到構(gòu)造函數(shù)。 5. 確保應(yīng)用程序的 [InitInstance] 方法調(diào)用其父級(jí)InitInstance方法: CWinApp::InitInstance或CWinAppEx::InitInstance。InitInstance方法負(fù)責(zé)檢查m_dwRestartManagerSupportFlags參數(shù)。
(4)完全支持C++0x新標(biāo)準(zhǔn)
Visual Studio 2010開(kāi)始對(duì)C++新標(biāo)準(zhǔn)C++0x全面支持,不會(huì)再像Visual C++ 6.0一樣,對(duì)C++標(biāo)準(zhǔn)支持不佳。引進(jìn)了很多C++新特性,這些新特性帶來(lái)C++性能與效率更大的提升。并且在項(xiàng)目升級(jí)上做了很大改進(jìn),以前Visual Studio 2008, Visual Studio 2005升級(jí)VC6.0的時(shí)候,經(jīng)常遇到C++語(yǔ)言新特性標(biāo)準(zhǔn)兼容性問(wèn)題,Visual Studio 2010將兼容VC6.0,乃至Visual Studio2008,2005,2003開(kāi)發(fā)的程序,進(jìn)行代碼轉(zhuǎn)換與項(xiàng)目升級(jí)的時(shí)候自動(dòng)更改編譯器設(shè)置C++語(yǔ)言兼容,用以前的開(kāi)發(fā)工具開(kāi)發(fā)的程序在Visual Studio 2010都將不會(huì)再出現(xiàn)兼容性問(wèn)題與故障。那些已經(jīng)存在的非托管應(yīng)用程序,通過(guò)一定的處理也同樣能夠具有Windows7所帶來(lái)的特性。所有的老項(xiàng)目都能用Visual Studio 2010進(jìn)行兼容性升級(jí)。 (5)更容易發(fā)布、部署 Visual Studio 2010改變了依賴于Visual C++庫(kù)的應(yīng)用程序的發(fā)布方式。依賴于Visual C++庫(kù)的應(yīng)用程序不再需要Fusion (WinSxS) Manifest,這意味著當(dāng)我們將應(yīng)用程序部署到一個(gè)本地文件夾時(shí),將不再需要眾多的小Manifest。另外,Visual C++ 2010也同樣支持之前的各種部署機(jī)制,這些過(guò)去常用的方法在System32目錄下安裝Visual C++庫(kù)。總之,Visual C++程序的發(fā)布與部署將更加簡(jiǎn)單。 首先,生成前面項(xiàng)目的Release文件,具體方法是選中解決方案,修改配置管理器中的配置為“Release”,然后“生成解決方案”即可。 然后,在前面創(chuàng)建的解決方案中,添加“安裝和部署”項(xiàng)目 1.選擇“文件->新建->項(xiàng)目”,打開(kāi)“新建項(xiàng)目”窗體 2.選擇“安裝和部署->Visual Studio Installer->安裝項(xiàng)目”,點(diǎn)擊“確定” 3.選中“Setup1”,點(diǎn)擊右鍵,選擇“添加->項(xiàng)目輸出” 4.在“添加項(xiàng)目輸出組”中選擇“主輸出”,配置選擇“Release Win32”,如下圖 5.點(diǎn)擊“重新生成”,即可產(chǎn)生下列文件,將 Setup1.msi 和 setup.exe 復(fù)制到第二臺(tái)計(jì)算機(jī)上,按照安裝向?qū)崾镜牟襟E完成安裝。 如果將應(yīng)用程序部署到應(yīng)用程序本地文件夾,只需生成Release文件,然后復(fù)制WinFormDemo和C 運(yùn)行庫(kù) (CRT) 庫(kù)文件、mfc100u.dll 和 msvcr100.dll 復(fù)制到WinFormDemo項(xiàng)目的 Release 文件夾中就可以了。 小結(jié) 經(jīng)典也有過(guò)去時(shí),在本文中我們對(duì)VC++6.0不足做了闡述,同時(shí)對(duì)Visual C++ 2010的一些新特性做了介紹,并將這二者做了比較,不難看出,微軟花大精力推出的Visual C++ 2010,在操作使用、安全方面等,更多的考慮了使用者的習(xí)慣,在類庫(kù)(MFC)和向?qū)Чこ躺隙甲隽酥匾?,更大程度上提高了開(kāi)發(fā)人員的效率,我們還等什么呢,擁抱Visual C++ 2010,完美編碼吧。 |
|
來(lái)自: 步夢(mèng)九淵 > 《縱橫奇談》