VC++6.0調(diào)試時(shí)注意事項(xiàng)
VC++6.0是Windows平臺(tái)上的C++編程環(huán)境,學(xué)習(xí)VC要了解很多Windows平臺(tái)的特性并且還要掌握MFC、ATL、COM等的知識(shí),難度比較大,對(duì)標(biāo)準(zhǔn)的C99支持不好也是很正常的事情。
GNU Dev C++ 4.9.9.2,2005年最后一版,據(jù)說(shuō)對(duì)C++標(biāo)準(zhǔn)支持比較好,再后來(lái)有wx-devcpp繼續(xù)了它的道路,至今一直繼續(xù)升級(jí)。我個(gè)人的使用經(jīng)驗(yàn)是這樣,如果你把VC++6.0當(dāng)成一個(gè)C語(yǔ)言的IDE可能還不錯(cuò)。
但是編譯C++程序,恐怕就有點(diǎn)牽強(qiáng)了,我平時(shí)寫(xiě)得C++代碼[如果沒(méi)有語(yǔ)法錯(cuò)誤的話(huà)],VC++6.0即使打上SP6補(bǔ)丁相信90%以上的可能性編譯不過(guò)去。Dev C++ 4.9.9.2可以編譯過(guò)去的可能性相信會(huì)超過(guò)98%。如果寫(xiě)C程序,假如沒(méi)有語(yǔ)法錯(cuò)誤的話(huà),VC++6.0和GNU Dev C++ 4.9.9.2基本上都可以編譯成功。
由于都是IDE,VC++6.0調(diào)試程序更方便一些,用VC++6.0可以開(kāi)發(fā)C應(yīng)用程序,Win32應(yīng)用程序,還可以方便的使用MFC開(kāi)發(fā)很多應(yīng)用程序,不過(guò)問(wèn)題是,MS的IDE新版本有很多時(shí)候并不兼容VC++6.0,有些函數(shù)的參數(shù)重新修訂,有些函數(shù)和類(lèi)已經(jīng)廢棄,有些已經(jīng)改名,當(dāng)然還擴(kuò)充了不少。
VC++6.0對(duì)STL支持不佳是很正常的事情,比如getline庫(kù)函數(shù)本身有bug,list成員函數(shù)sort本身有bug,還有很多其他問(wèn)題,VC++6.0對(duì)模板支持很差,對(duì)友元支持很差,還有很多方面支持很差。對(duì)模板支持差,這種情況一直到VS2003(C++7.0)都沒(méi)有很好的解決,VS2003不支持模板的偏特化。
GNU Dev C++ 4.9.9.2比較小,安裝后大約50M大小(VC++6.0安裝后至少幾百M(fèi)),可以開(kāi)發(fā)C,C++,Win32應(yīng)用程序等等,使用Dev C++ 4.9.9.2編譯C++程序,用的是g++3.4.2編譯器。Dev C++對(duì)標(biāo)準(zhǔn)C++支持較好。
據(jù)我所知,僅僅友元模板函數(shù)在類(lèi)里面實(shí)現(xiàn)可以正常編譯,但是放到類(lèi)外就不行,到目前為止僅僅發(fā)祥這一個(gè)問(wèn)題,還有一個(gè)問(wèn)題就是代碼最大優(yōu)化,你需要便宜環(huán)境設(shè)置里面加上命令-O3。另外,我還使用過(guò)Intel C++ 9.0,以插件的形式安裝在VC++6.0這個(gè)IDE上,對(duì)C++的支持力度僅次于Dev C++ 4.9.9.2,但是編譯代碼以后執(zhí)行速度稍快一點(diǎn)。
如果你喜歡使用MS的編譯器,建議使用VC++8.0[VS2005],缺點(diǎn)是占據(jù)硬盤(pán)空間很大,加上MSDN,至少2GB以上。如果你是C++初學(xué)者,使用環(huán)境Windows平臺(tái),GNU Dev C++ 4.9.9.2(g++3.4.2)可能是你非常好的選擇。如果你使用linux平臺(tái),可以升級(jí)g++編譯器版本到4.2.1甚至更高。
VC作為一個(gè)主流的開(kāi)發(fā)平臺(tái)一直深受編程愛(ài)好者的喜愛(ài),但是很多人卻對(duì)它的入門(mén)感到難于上青天,究其原因主要是大家對(duì)他錯(cuò)誤的認(rèn)識(shí)造成的。嚴(yán)格的來(lái)說(shuō)VC++6.0不是門(mén)語(yǔ)言,雖然它和C++之間有密切的關(guān)系,如果形象點(diǎn)比喻的話(huà),可以把C++看作為一種“工業(yè)標(biāo)準(zhǔn)”,而VC++則是某種操作系統(tǒng)平臺(tái)下的“廠(chǎng)商標(biāo)準(zhǔn)”,而“廠(chǎng)商標(biāo)準(zhǔn)”是在遵循“工業(yè)標(biāo)準(zhǔn)”的前提下擴(kuò)展而來(lái)的。
VC++應(yīng)用程序的開(kāi)發(fā)主要有兩種模式,一種是WIN API方式,另一種則是MFC方式,傳統(tǒng)的WIN API開(kāi)發(fā)方式比較繁瑣,而MFC則是對(duì)WIN API再次封裝,所以MFC相對(duì)于WIN API開(kāi)發(fā)更具備效率優(yōu)勢(shì),但為了對(duì)WINDOWS開(kāi)發(fā)有一個(gè)較為全面細(xì)致的認(rèn)識(shí),筆者在這里還是以講解WIN API的相關(guān)內(nèi)容為主線(xiàn)。
話(huà)說(shuō)到這里可能更多人關(guān)心的是學(xué)習(xí)VC++需要具備什么條件,為什么對(duì)于這扇門(mén)屢攻不破呢?
要想學(xué)習(xí)好VC必須具備良好的C/C++的基礎(chǔ),必要的英語(yǔ)閱讀能力也是必不可少的,因?yàn)榇罅康募夹g(shù)文檔多以英文形式發(fā)布。
VC++6.0基于C,C++語(yǔ)言,主要由是MFC組成,是與系統(tǒng)聯(lián)系非常緊密的編程工具,它兼有高級(jí),和低級(jí)語(yǔ)言的雙重性,功能強(qiáng)大,靈活,執(zhí)行效率高,幾乎可說(shuō)VC在 Windows平臺(tái)無(wú)所不能。 最大缺點(diǎn)是開(kāi)發(fā)效率不高。
【編輯推薦】