淺談如何學習VC++

預備知識
     1. VC是一門語言嗎?
     VC不是一種語言,而是一種集成開發環境(IDE)。利用VC,可以把源程序編寫、編譯鏈接、調試運行等各個工作放在一塊完成,很方便。如果你學過 8086彙編語言,一定會對其令人吐血的運行和調試方式印象頗深:) .那麼,我們在VC裏用的是什麼程序設計語言呢? 是 C++。

     2.MFC是什麼東東?VC和MFC有什麼關係?
     常聽學VC的人說起MFC,有本口碑不錯的書名字就叫《深入淺出MFC》,那麼MFC是什麼呢?我們知道,C++是一種面向對象編程(OOP)語言,使用 別人封裝好的類(Class)可以極大的加快軟件開發進度。而MFC,就是MicroSoft爲我們提供的一個門類齊全、功能強大的類的集合,它的全稱 是:MicroSoft Foundation Class。我們平常所說的"學習VC",有一小半內容是指學習MFC的功能和使用方法。那另一大半呢?- 我不能馬上告訴你,馬上告訴你你印象不深:)

     3.什麼是API函數?
     舉個例子吧,如果讓你在電腦屏幕中間打印一行字:"只要想做一件事,就一定有辦法"。你會如何去做呢?在顯示器上顯示任何東西,本質上都是對硬件的操作, 作爲一個普通的coder,不可能也沒有必要去深入到硬件層來實現這個功能。幸運的是,系統給我們提供了一系列函數,只要我們用C語言的方式調用這些函 數,剩下的和硬件打交道的事情就由系統幫我們完成了。這些函數,就是傳說中的API函數,全稱:Application Programm Interface(應用程序接口)。在我們上面的例子中,可以先用API函數GetDC()取得桌面的DC,然後用TextOut()函數輸出文字。事 實上,要想紮實的學好VC程序設計,一定要理解和掌握這些API - 這就是另一大半內容。

一、思想準備
     真是有趣,學個程序開發還要思想準備?
     我無意誇大學習VC的難度,但是VC的入門比VB之類的難很多卻是不爭的事實。如果你曾經3個星期搞定VB(這裏指入門),那麼VC可能要花三個月的時 間,這種普遍存在的學習困難差異使得很多人產生嚴重的挫折感甚至最終放棄。當然,具體要花多長時間和你原有的基礎以及個人努力程度有關,稍後我會談到需要 哪些知識。而現在,我只希望朋友們能有這樣一個認識:VC是比較難學的,我需要做好長期學習的思想準備。


二、學習流程
     誰都希望通過最短最好走的路到達目的地,學VC的人也不例外吧?然而有一些路是註定不能繞過的,繞過它們,你的知識就會就會變成無根之草,你就會在接下來的學習中舉步唯艱。下面順次列出學習VC所需要掌握的知識:

     1. C++程序設計基礎

     2. Windows程序設計

     3. MFC的學習和使用

     如果你看到這裏覺得有畏難情緒,請把"一、思想準備"再讀一遍。
     讓我來解釋一下這三個知識點的關係。

 

     學VC必須要有C++的基礎。不會C++而能學會VC純屬扯淡。說到這裏我想調侃一下自己,因爲我在上大二的時候曾經一時衝動要學VC,去圖書館借了幾本 書回來硬着頭皮啃了半個多月,仍然一頭霧水不知書中所云,遂放棄。現在回想起來,書寫的比較爛固然是沒有學成VC的一個原因,但關鍵是自己基礎不夠--除 了VB啥都不懂,連"::"是什麼意思都不知道,呵呵見笑了。所以如果你現在還不懂得C++,請務必學C++先。
     如果時間緊迫的話,也可以速成:至少應該搞明白麪向對象編程的基本概念,比如類/對象/繼承/重載 等等。
推薦書目:利普曼 加.勞喬 著 潘愛民譯 《C++ Primer 》、錢能的《C++程序設計教程》也不錯。

 

         有了C++的基礎後,接着應該學習的是windows程序設計。這個部分主要是在瞭解消息機制的基礎上學習大量API函數的使用。首先你需要理解 windows程序的事件驅動機制,然後就是花大量的時間來學習系統提供的API函數,並且使用它們進行簡單的可視化編程。API函數成千上萬,但是也不 用有畏難情緒,只要把常用的百十個函數會用就行了。這個部分要佔去你VC計劃中的大部分時間-同時回報也是相當顯著的,當你下大力氣學好了這個部分,你會 發現接下來MFC部分的基礎知識很容易學。

    注意:有不少人畏懼這部分的學習而選擇跳過去直接學習MFC,對此我的看法是:不可取。當你沒有學會走 路時,不要跑,否則往往會摔的很慘。侯俊傑先生說的”勿在浮沙築高臺“也是這個道理。而事實上當你潛心把這部分學好後,你會發現MFC的入門根本就不需要 花什麼時間。世上很多事情是需要水到渠成的,當你付出足夠的努力往往就可以做成一件事(技術的事情尤其如此),不需要刻意去找什麼捷徑,古人說“大巧無巧 術, 用巧者乃所以爲拙”,真正的捷徑就是不找捷徑。
     推薦書目:Petzold 的《widnows程序設計》,有中文版的。爲什麼我只推薦這一本?因爲它實在太經典了,一本足矣。

     當你終於學會了windows程序設計這個部分,請允許我提前恭喜你,你馬上就要成功了。這時候再來看MFC,你難免會有這樣的感覺:哈哈,這不就是對 API函數的封裝麼?誠然,對於初學者來說,無非是用MFC建立個對話框或者單文檔程序,裏面放幾個控件而已,而對控件的操作很大程度上都是用API函 數,不同的是,這些函數被MFC封裝了一下,用起來似乎更簡單一些。
推薦書目:《VC++技術內幕》、《深入淺出MFC》
     值得一提的是,關於MFC的學習,網上有一個非常好的視頻教程,是 孫鑫 講的。我看過,覺得他講的確實很好,能把前10課看完就算入門了。該視頻共20課,有2.2GB之大,大家有興趣的話可以買盤或者用BT、電驢之類的下載,一個字:值。

  
    到此爲止,你已經掌握了使用API函數和MFC進行簡單可視化程序的開發,稍加訓練做個簡單的數據庫或者網絡的程序應該不成問題了。萬里長征已經順利的邁出了第一步,恭喜你!

三、問答(FAQs)

     問:我不會c語言,有關係嗎?
     答:沒關係。你按照【學習流程】中說的123學就行。

     問:我該裝哪個版本的VC?
     答:版本並不重要, 就像你喫飯時先喫哪道菜一樣. IDE的使用,一通百通。如果你實在沒有主意非要我推薦的話, 那就裝VC++6.0吧,最好是英文版的.

     問:C++ 和 windows程序設計的學習可以用VC進行編譯調試嗎?
     答: 當然可以。具體方法網上找,相當簡單。

     問:VC的代碼量太大,一個最簡單的窗口都要百十行代碼。不好辦啊?
     答:VC就這個樣,習慣了就好了。簡易和靈活是天生的矛盾,VC偏向於後者。

     問:什麼是MSDN?我要不要安裝MSDN?
     答:你可以把MSDN簡單的理解爲一種函數參考手冊。對於VC程序員來說,沒有MSDN是不可想象的。

     問:API函數和宏定義太多太難記,我該怎麼辦?
     答:高中化學的原子量多不多?難不難記?但我相信當年很多人都記得常用元素的原子量。爲什麼?練的多自然就記住了,別亦無它,唯手熟而。

     問:我學VC好一陣子了,覺得VC太難了,我該怎麼辦?
     答:謝謝, 這是我所遇到的最容易回答的問題:堅持,或者放棄。

     問:如果用一句話來概括學好VC的關鍵方法,那是什麼?
     答:親手寫代碼, 從最最簡單的程序開始, 編程、編程、再編程。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章