對VC初學者的益言

2021-07-24 23:07:22 字數 3094 閱讀 4565

預備知識:    

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的功能和使用方法。那另一大半呢?- 我不能馬上告訴你,馬上告訴你你印象不深:)

真是有趣,學個程式開發還要思想準備?

我無意誇大學習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》

三、問答(faqs)

q:我不會c語言,有關係嗎?

a:沒關係。你按照【學習流程】中說的123學就行。

q:我該裝哪個版本的vc?

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

q:c++ 和 windows程式設計的學習可以用vc進行編譯除錯嗎?

a: 當然可以。具體方法網上找,相當簡單。

q:vc的**量太大,乙個最簡單的視窗都要百十行**。不好辦啊?

a:vc就這個樣,習慣了就好了。簡易和靈活是天生的矛盾,vc偏向於後者。

q:什麼是msdn?我要不要安裝msdn?

a:你可以把msdn簡單的理解為一種函式參考手冊。對於vc程式設計師來說,沒有msdn是不可想象的。

q:api函式和巨集定義太多太難記,我該怎麼辦?

a:高中化學的原子量多不多?難不難記?但我相信當年很多人都記得常用元素的原子量。為什麼?練的多自然就記住了,別亦無它,唯手熟而。 

q:我學vc好一陣子了,覺得vc太難了,我該怎麼辦?

a:謝謝, 這是我所遇到的最容易回答的問題:堅持,或者放棄。

q:如果用一句話來概括學好vc的關鍵方法,那是什麼?

a:親手寫**, 從最最簡單的程式開始,。不怕吃苦,程式設計、程式設計、再程式設計。

2009-09-06                   

對測試初學者的建議

對測試初學者的建議 angle duan 測試初學者對軟體測試以及他們在實際工作中將怎樣實現測試有很多問題。作為乙個測試初學者,你需要對軟體測試這個職業有一定了解。下面的這些建議,對於你在軟體測試的發展,肯定會有所幫助。這些測試真理同樣適用於有豐富測試經驗的測試工程師。將下面的測試真理運用到你的測試...

對vim初學者的建議

更多分享內容可訪問我的個人部落格 vim 是必要的?顯然,必要 是不存在的。無數現代編輯器以及各類 ide 都可以成為替代物件。即使是在命令列中,也有 nano 等替代品。學習 vim 有什麼好處?首先,儘管有那麼多替代品,但vim至今仍保持著強大的生命力,送走了一代又一代所謂的 替代者 vim的強...

jsp初學者對編碼的理解

今天有點興趣研究下jsp,主要是想把原來在內網中測試的一些 由asp轉換為jsp環境。看了點資料就開始動手了。1 將頁首加入 page contenttype text html charset utf 8 然後將資料型別就行重新定義 將原來的語句 dim id,kindid,name 轉換為對應型...