国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

我的Visual C++入門之路

2019-11-17 05:05:25
字體:
供稿:網(wǎng)友
“N次失敗,1次成功,還學(xué)的不怎么樣……你也太笨了吧!”假如您有這樣的評(píng)價(jià),那么祝賀您,您已經(jīng)了解了我這人的99.9%。N這個(gè)數(shù)字具體是多少連我自己也記不清楚,保守地講(N≥6==TRUE)這個(gè)表達(dá)式是能夠成立的。
回想我的VisualC++入門過程,一路過來,絕對(duì)不是像黃飛鴻的功夫那樣瀟灑出色,而更像是一顆石頭順流而下,在河床底摸爬滾打、磕磕碰碰。今天是周末,我就把以前N次失敗留給我的經(jīng)驗(yàn)教訓(xùn)胡寫上幾筆,假如有朋友看到這篇拙文,又剛好打算嘗試一下VisualC++,也就算是我給您留下的莽原一徑吧。

  一.C++語言的基礎(chǔ)

  說起入門慢,第一個(gè)原因莫過于語言基礎(chǔ)了.高中時(shí)期學(xué)校組織的微機(jī)愛好小組學(xué)習(xí)的是PASCAL語言(我也不知道為什么要講這個(gè)語言,假如說是為了應(yīng)付比賽,當(dāng)時(shí)也有C語言組呀),所以在大學(xué)轉(zhuǎn)向Windows編程的時(shí)候,我首先選擇了Delphi.大三的時(shí)候?qū)W校要求考國(guó)家二級(jí),二級(jí)沒有Delphi,于是又轉(zhuǎn)向了VB,原因是VB做起來與Delphi很像。后來發(fā)現(xiàn)VB的IDE做的比Delphi好用,而且BASIC語言寫起來簡(jiǎn)單,于是便棄Delphi而去(明眼人恐怕又要罵我了,若不是太懶,怎么會(huì)喜歡VB的IDE呢?的確是這樣,后文會(huì)提到,懶不僅僅是學(xué)習(xí)VC的大敵,而且懶人是什么都學(xué)不好的)。長(zhǎng)年與VB打交道,讓我對(duì)C/C++語言很不習(xí)慣——我不喜歡C++寫一個(gè)句語要打一個(gè)分號(hào),我不喜歡大小寫字母要嚴(yán)格區(qū)分,我不喜歡比較的時(shí)候要寫兩個(gè)等號(hào),我不喜歡……總之,對(duì)C++很沒好感,沒好感也就沒愛好學(xué)了(后面提到愛好是相當(dāng)重要的)。當(dāng)然假如你現(xiàn)在再問我應(yīng)該學(xué)習(xí)什么語言,我會(huì)毫不猶豫地向你推薦C++,因?yàn)榫统S谜Z言而言,C++語言中包含的知識(shí)是相當(dāng)全面的——從面向過程,到基于對(duì)象/面向?qū)ο螅俚?a >模板和范型,可以說是應(yīng)有盡有,不夸張地說,別的語言在某種程度上而言是C++語言的子集或者說是在模擬C++、向C++靠攏。

  在數(shù)次失敗中,給我很明顯的感覺就是,不學(xué)好C++語言就學(xué)習(xí)VisualC++純粹是一種自虐。這次入門之前,我花了3個(gè)多月的時(shí)間系統(tǒng)地學(xué)習(xí)了C++語言,夠意思吧。然后我信心實(shí)足地敲響VisualC++的家門,呵呵,這次她終于肯給面子了。舉個(gè)例子吧,在看Dll的調(diào)用時(shí),用到“函數(shù)指針”,順理成章就看下去了,想一想假如沒有C++語言的基礎(chǔ),基本是不可能的。所以說,沒學(xué)會(huì)中文之前,別看《紅樓夢(mèng)》,那不是《看圖識(shí)字》。奉勸想從VB轉(zhuǎn)向VC學(xué)習(xí)的朋友,假如你指望能像學(xué)習(xí)VB一樣邊學(xué)習(xí)VC邊學(xué)習(xí)C++語言,那你可就錯(cuò)了:)

  順便提醒C++語言入門的朋友一點(diǎn),應(yīng)該關(guān)注ANSI/ISOC++,也就是標(biāo)準(zhǔn)C++了,市面上C++的書良莠不齊,很多書是“舊書換新皮”,講的仍然是非標(biāo)準(zhǔn)C++,一定要選好。計(jì)算機(jī)書很貴,大家不妨找電子版的來看,網(wǎng)上有很多,甚至《C++PRimer》或者《C++沉思錄》這樣的好書也有熱心朋友放到了網(wǎng)上。不過,我最喜歡的是《C++編程金典》這本書,不愧是教育大師寫的書,用來學(xué)習(xí)很合適。至于編譯器的選擇,假如條件答應(yīng)就安裝VS.NET2003吧,據(jù)說VisualC++7.1的編譯器是目前對(duì)標(biāo)準(zhǔn)C++支持的最好的編譯器了。

  二.VC學(xué)習(xí)資料的選擇

  VC入門難有很多原因,其中不容忽視的一個(gè)就是優(yōu)秀的VC學(xué)習(xí)資相對(duì)較少。C++語言較深,VisualC++用起來復(fù)雜,再加上資料少——難上加難。資料少,并不意味著沒有,怎樣選擇或者說挖掘就是要害。暫把資料分為光盤、書籍(包括電子書)和文檔(包括網(wǎng)上的)三類。

  在選擇資料方面,大家一定要擯棄中國(guó)人思想中的兩大劣根性:<1>不勞而獲<2>一夜暴富。

  “不勞而獲”的思想會(huì)導(dǎo)致趨向于選擇“講課”類的資料,比如多媒體光盤。結(jié)果是光盤容量往往很少但又要求內(nèi)容面面俱到(不然怎么賣出去呀),這就造成了知識(shí)的連貫性差而且講的又飛快,任你一遍一遍地聽,不見成效又打擊信心,最后只能放棄。期待早日有內(nèi)容豐富,講解出色的光盤面市。

  “一夜暴富”的思想會(huì)讓你趨向于選擇“速成”類教材。那樣的教材大多是騙人的——能寫個(gè)彈出窗口Hello一下World,這就能算是會(huì)VisualC++了?我們還是不要自欺欺人的好。至少也要能連數(shù)據(jù)庫、能使用Socket吧……而這些知識(shí)怎么可能“速成”呢?

  我有很多VisualC++的學(xué)習(xí)資料,但沒有一本我是抱著一啃到底的,因?yàn)闆]有哪本書十全十美,我是交替著使用些資料,這樣做的好處在于:

  <1>知識(shí)的連貫性好,跳躍性小,進(jìn)階坡度較小,讀起來舒適。都說VisualC++的學(xué)習(xí)坡度比較陡,那個(gè)陡坡是出現(xiàn)在由單純的C++語言學(xué)習(xí)轉(zhuǎn)向Windows編程的時(shí)候,C++語言本身的學(xué)習(xí)并沒有那么困難。

  <2>有積累效應(yīng),這本書講的不精不透,另一本書會(huì)幫你補(bǔ)上,這本書你沒留心,下本書總該長(zhǎng)個(gè)心眼吧。還有就是一些小例子程序,把MFC的類或者函數(shù)拆開來給你看,目的非常明確,效果也不錯(cuò)。天天學(xué)一點(diǎn),不圖快,圖扎實(shí)。呵呵,跟VC搞“面向?qū)ο蟆保?dāng)然要一天一點(diǎn)戀愛了。

  <3>舉一返三,動(dòng)手實(shí)踐。假如多本書中都把它列為重點(diǎn),那就一定要熟記在心而且上機(jī)操作,書上的例子一定要分析透徹,不能有“差不多”的思想——差多少算多呢?程序這東東,錯(cuò)一個(gè)字母都不行呀。光看會(huì)了還差遠(yuǎn)著呢,自己要能寫,而且能對(duì)例子進(jìn)行擴(kuò)展才行。

  <4>內(nèi)容詳實(shí)豐富,這一點(diǎn)上,首推MSDN啦,還有就是在網(wǎng)上能找到的微軟出的VisualC++的叢書,希望譯的電子版,是wdl格式的。雖然MSDN是英文版,但其中的英文并不難——您盡可以相信我,因?yàn)樵谙碌挠⑽乃绞瞧鏍€無比的。MSDN有兩種用法,一種是當(dāng)字典用,因?yàn)閮?nèi)容全;一種是當(dāng)消遣,沒事了看一個(gè)類,敲幾行代碼,看到那個(gè)MFC的繼續(xù)圖了嗎,挺好玩兒的,感覺像逛街——而且東西不要錢,helpyourself。

  互聯(lián)網(wǎng)上的資源是非常非常豐富的,千萬不要錯(cuò)過!好網(wǎng)站和下載站BB皆是。還有論壇、新聞組、在線QQ群……你問我有哪些?呵呵,遠(yuǎn)在天邊近在眼前呀:)

  三.內(nèi)因與外因:“三心二意”和“高手朋友”你有嗎?

  啊哦,我不是在開玩笑。“三心”是指決心,信心和耐心。決心來源于動(dòng)機(jī),說來好笑,我最初動(dòng)機(jī)很簡(jiǎn)單,大學(xué)時(shí)有個(gè)朋友,計(jì)算機(jī)系的,我總認(rèn)為我比他聰明(我的天~~~~),他會(huì)VC我不會(huì),我就想超過他,現(xiàn)在都畢業(yè)兩年了,最初的動(dòng)機(jī)早已經(jīng)不在了,而學(xué)習(xí)卻VC已經(jīng)成了我的心愿——最要害的一點(diǎn)是我的愿望是寫自己的輸入法,而寫輸入法只能用VisualC++去實(shí)現(xiàn),所以我會(huì)有決心學(xué)好VisualC++。至于信心,有兩次失敗完全是信心不足造成的,促成這次成功的信心說起來還挺傳奇:我去北京玩兒,回家的火車上一姓趙位老師看見我別著一個(gè)MCP的領(lǐng)章就過來跟我聊天,得知他是一位有著十多年VC開發(fā)經(jīng)驗(yàn)的程序員,敬意油然而生。聊天的過程中,趙老師給了我極大的鼓勵(lì)和支持——我問他像我這種WoodHead能不能在半年內(nèi)入門VC,他告訴我,一定能,于是我就堅(jiān)定了自己的信心,現(xiàn)在剛好是4個(gè)月,假如趙老師有機(jī)會(huì)看到這篇文章——我在這里謝謝您啦!(花絮:下車,兩個(gè)小時(shí)后我與女友分手了,是被甩呀同志們!隨后的一段日子里,一直與VC相伴……)還要說說耐心:假如您已經(jīng)看到這里了,說明您很有耐心(竟然能看到這里還沒有拂袖而去),耐心與個(gè)人的風(fēng)格有關(guān),沒耐心的人多半是懶人,懶人什么都做不成,學(xué)習(xí)VC就是不能懶,書懶得看,問題懶得問,英語懶得譯……或者是有點(diǎn)挫折就放棄,學(xué)好VC是沒指望了。我不知道別人怎樣,反正我是沒少受挫,其實(shí)有兩次離入門就那么一點(diǎn)點(diǎn)了,我放棄了……學(xué)VC要越挫越勇,學(xué)VC要肯定執(zhí)著,Gogogo!

  “二意”是指第一你要感覺學(xué)習(xí)VC有“意思”,二是你要感覺學(xué)習(xí)VC有“意義”。有意思,就是說你喜歡寫程序,“三心”的源動(dòng)力來源于你對(duì)程序設(shè)計(jì)的熱愛,不喜歡編程的人可能能學(xué)好VB但絕學(xué)不好VC。有意義,就是說你要給自己一個(gè)理由:自己都不能給自己一個(gè)交待的事情是做不長(zhǎng)久的。前面說過,我是為了寫自己的輸入法,解放中國(guó)人的雙手,這個(gè)理由夠純潔夠崇高,還有一個(gè)理由就是通過學(xué)習(xí)VC來礪練自己,成為一個(gè)真正的程序員。你可以有自己的理由,比如提高薪水或者取得認(rèn)證云云,一定要有!這就像是給自己的“報(bào)酬”,沒有報(bào)酬只憑激情做事是任何事都做不長(zhǎng)久的。

  我小小的成功,有嚴(yán)重的原因是因?yàn)槲矣形弧案呤峙笥选薄獥頦,他是個(gè)VC高手,大家會(huì)好奇地問:他教你寫什么呢?是MFC還是ATL或者是COM?呵呵,都不是,他從來沒教我寫過一行代碼,但他對(duì)我的每一次幫助都彌足珍貴,當(dāng)我不知道從哪里查找類庫資源的時(shí)候,他告訴我:MSDN;當(dāng)我不知道從哪里找到類的成員函數(shù)時(shí),他告訴我:在頁面的左下角有一個(gè)classmr鏈接,當(dāng)我問他能不能完成XXXX時(shí),他說:別白費(fèi)力氣了……在他的幫助下,我少走了很多彎路,這也正是高手朋友的可貴之處。在此,我要衷心地說一聲:謝謝!

  并不是每位學(xué)習(xí)VC的朋友都有我這么好的運(yùn)氣,假如你身邊沒有這樣的朋友也不用著急嗎,我這位好朋友可是經(jīng)常出沒于CSDN的壇壇里,明白了?不過,提醒與我一樣的初學(xué)者:一定要做一個(gè)會(huì)問問題的人哦!怎么做一個(gè)會(huì)問題的人呢?概括一下就是:目的明確,言簡(jiǎn)意賅,核心代碼,客氣謙虛。  四.VC入門隨筆

  本人寫東西向來思緒凌亂、顛三倒四。剩下好多東西不知道寫到哪里,沒辦法了,只好叫“隨筆”咯。

  ……學(xué)習(xí)VC編程,首先要豎立一個(gè)“系統(tǒng)/全局觀”。無論是VB、C#、Delphi,寫程序的時(shí)候只需要考慮程序本身就行了,換句話說就是你不用考慮消息是如何映射和傳遞的。而VC寫程序就要多多少少考慮到這些東西。打個(gè)比方:以前用VB寫程序,就似乎是在一座山上建一個(gè)亭子,山是山,亭子是亭子,我只管造亭子就是了;而用VC寫程序,還是這個(gè)亭子,那么你應(yīng)該意識(shí)到,亭子是山的亭子,是山的一部分而不是一個(gè)孤立的建筑。“亭子”就是程序,“山”就是Windows系統(tǒng),亭子的地基是山留給建筑的“接口”,也就是API了……

  ……VC相對(duì)VB入門難,一上來不是像VB那樣給個(gè)窗體從頭做起,而且AppWizard要分好幾步,每一步里還有一大堆不知所云的選項(xiàng),不等生成一個(gè)程序就已經(jīng)暈頭轉(zhuǎn)向了。怎么辦呢?一句話,從對(duì)話框程序入手,因?yàn)樗詈?jiǎn)單,生成的類最少,而且相對(duì)是與VB編程最“像”的。在對(duì)話框程序里,你可以充分練習(xí)添加類和成員變量或者成員函數(shù)。……不過我有一點(diǎn)始終搞不明白,由易到難是對(duì)話框程序、單文檔程序、多文檔程序,在AppWizard里微軟為什么不按這個(gè)順序排列,非要倒著來呢?成心跟我們這些初學(xué)的做對(duì)!(國(guó)罵省去)……

  ……又是沒大寫……又是少分號(hào)……又是少一個(gè)等號(hào)……提醒VB轉(zhuǎn)過來的程序員,別總像我這么沒記性哦!

  ……還是提醒那些學(xué)習(xí)了VB或者是VB.NET/C#的DDMM,MFC的類雖然是面向?qū)ο蟮模鼪]有“屬性”這個(gè)概念地!不要指望有Me.TextBox1.Text=HelloWorld!這樣的語法,C/C++是函數(shù)型的語言,類已經(jīng)把“屬性”封裝成了成員變量,那些私有的成員變量你看不到,只能通過函數(shù)來更改——this->myTextBox.SetWindowText(HelloWorld!);……

  ……暈,原來Win32程序和MFC程序不是一回事呀(看看,這就是一本爛書帶給我的,讓我一直以為Win32程序就是MFC程序,直到拜讀《深入淺出MFC》時(shí)才恍然大悟)……

  ……VC好還是VB好?(拜托,別再問這種無聊的問題了)……

  ……VC的確能做底層,但不是最底層;VC的確功能強(qiáng)大,但不是萬能的——拿手術(shù)刀切西瓜或者用菜刀動(dòng)手術(shù)都不對(duì)……

  ……VC高手都是用記事本寫程序的:笑不笑由你……

  ……VC程序員比VB程序員強(qiáng):呵呵,毛主席說過,武器不是戰(zhàn)爭(zhēng)勝利的決定因素……

  ……在快速開發(fā)工具(RAD)中,控件與后臺(tái)代碼是捆綁在一起的,而MFC的“控件類”不一樣,它的“資源”(或者說是皮)與“類”(或者說是瓤)是分開的,要通過ClassWizard把它們“粘”起來……

  ……假如說C++是一種程序設(shè)計(jì)語言,那么VisualC++中的C++語言不如叫“Windows語言”更合適——VisualC++就是在編程Windows,用到的宏或者Windows數(shù)據(jù)類型和Windows結(jié)構(gòu)數(shù)不勝數(shù),做好心理預(yù)備哦!……

  ……我的天,那么長(zhǎng)的函數(shù)或者結(jié)構(gòu)都要一個(gè)字母一個(gè)字母寫呀!呵呵,按一下Ctrl+J看看發(fā)生了什么?我就希奇了,幾乎沒看到有書上提醒我們的初學(xué)者要這樣去做。
這可是著實(shí)嚇跑了不少初學(xué)者呢!(至少我就被嚇跑過)。器利工善,我們要把IDE用熟哦,微軟送的好禮物可不能浪費(fèi)……

  ……很多書在添加完對(duì)新話框類之后都寫著要在主對(duì)話框類里手動(dòng)添加對(duì)這個(gè)新類頭文件的引用,何必呢?用添加成員變量的方法添加這個(gè)新對(duì)話框類的實(shí)例,頭文件自動(dòng)引用,一舉兩得。一句話:盡量多用ClassWizard,能不手寫的地方就不手寫……

  五.virtual BOOL LongWayToGo(void)

  //頭一次寫文章,其中Bug肯定少不了,大家一起來DeBug。

  //由于是入門級(jí)文章,假如有錯(cuò)誤,很可能影響初學(xué)者學(xué)習(xí),恐誤人子弟,有錯(cuò)必糾!

  //希望大家多提寶貴意見,幫助我前進(jìn),謝謝先!

  //這是虛函數(shù),留待有所得時(shí)續(xù)以后文。我還有很長(zhǎng)的路……

  return TRUE;  作者:程序員之家 更多文章 更多內(nèi)容請(qǐng)看C/C++技術(shù)學(xué)堂  C/C++技術(shù)專題  Solaris基礎(chǔ)知識(shí)入門專題,或

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 定安县| 张北县| 铜鼓县| 巴林右旗| 错那县| 丽水市| 新竹市| 尉犁县| 临夏县| 开原市| 霍州市| 扶风县| 富民县| 松滋市| 栾城县| 武胜县| 保康县| 宜春市| 永昌县| 卓资县| 邛崃市| 普洱| 集贤县| 浏阳市| 阿勒泰市| 墨玉县| 璧山县| 柯坪县| 大厂| 河源市| 邵阳市| 鄂伦春自治旗| 汉川市| 萝北县| 湘潭县| 齐河县| 五河县| 眉山市| 饶阳县| 鹰潭市| 拉孜县|