如何學習vc+(vc的用處)

1 vc的用處

      我感覺下面一些領域比較適合於用vc: 操作系統編程,game,圖形設計,corba編程,com編程,網絡編程。

       我談談我的體會。我現在在深圳的一家公司從事IP電話網關的開發。通過這個項目,我 才真正體會到VC有多麼強大,上百個線程同時工作,數據庫併發訪問,而且全部軟件基 於COM構造,這樣高性能的大型軟件,只有VC方顯出其英雄本色!不過,在國內,有機會 接觸這樣的大型系統軟件的不多。而在做大型系統軟件時,對VC程序員的要求就不僅僅 是熟悉VC、MFC本身了,這只是基本的要求,最的挑戰是你如何運用VC實現一些高級的功能特性。 

       其實,VC做數據庫也不是不合適,關鍵在於你要拋開所謂的例子程序,直接從底層(SQL)做起。那麼,你會有一種天高任鳥飛的感覺:爽。數據庫與界面全部在你的控制之下 。前一段時間,做一個很大的管理系統(每個綱要540多個表12000多個數據項,綱要數不定),並且還要通過CORBA實現跨平臺、通過ODBC跨數據庫。如果通過什麼PB、BCB、De lphi等等快速開發工具(並且做MIS是所謂強項)將會很難自由發揮的。 

        我以爲它比較適合一些需要底層控制的場合,特別是一些使用現有控件不太理想的情況下,VC的自由度就比較高。VC是把全能的瑞士軍刀,不過對於一些較簡單的功能,比如開酒瓶之類的用個開瓶器就更方便一些。VC可以寫WEB上的控件。VC可以開發優秀的基於通信的程序。VC可以開發高效靈活的文件操作程序。VC可以開發靈活高效的數據庫操作程序。等等等等VC是編CAD軟件的唯一選擇!!!包括AUTOCAD,UG的二次開發。

         小到只是一個Windows的標準界面 那象這樣的程序用VC++確實大才小用了,因爲有比VC++ 開發界面更快的編譯系統,但如果這個界面極其複雜 複雜到要用很多的數學方法(例三維遊戲的)那也要用到VC++才能搞定就我使用VC++的這幾年經驗來看,VC++非常適合於系統程序設計,正如C語言是Unix的標準系統程序設計語言。

         在多線程、網絡通信、分佈應用方面,VC++有不可比擬的優勢。 

         當然隨着系統程序開發的機會越來越少,VC++的應用領域的確會逐漸縮小。如果說到Windows下的可視化開發工具現在大家接觸得最多的就是VC,VB,DELPHI,BCB,一些可視化開發的JAVA。其實我覺得VC並不能完全算是一個可視化工具,這表現在VC中編寫代碼還是佔了開發工作的大部分時間。而其他的可視化工具中都在界面設計中耗費了大量的開發時間。

         我一直使用VC的原因就是因爲我能夠一直將注意力集中在軟件功能開發上而不是界面設計上。我認爲這樣能夠在開發的過程中更加自由和有更多的控制權。而且這種情況下產生的代碼維護性更強。

       舉個簡單的例子,在維護VB代碼時如果沒有一份詳細的說明和流程就會使維護變得不可能,我想其他的基於界面開發的工具都會或多或少的產生這樣的問題,因爲在開發過程中開發工具將一個完整的流程分離成爲多個部分,在開發完成後這些部分就很難統一起來。

       選擇什麼樣的工具的前提是你的開發目標,如果你希望開發一個很大的系統你就不應該選擇面向基於界面開發的工具,但你可能會選擇VB來開發前端的客戶軟件,而後臺使用VC來實現。 對於一些並不是很複雜的軟件來講,界面和操作方式可能是非常重要的,所以選擇VB,CBC都可以縮短開發時間。這時候選擇VC就有些不智。 

        所以我認爲使用VC開發的朋友應該將更多的注意力集中在實現軟件功能的流程上,多從整體角度看問題。我想這一點來說其他的可視化開發工具是很難達到的,因爲VB,CBC等開發的程序在很大程度上都是用各種控件“堆”出來的,這會在後期的維護升級過程中帶來很多的不便,例如要替換掉一個控件就可能會對整個程序的結構產生非常大的影響。 

         最後我想說的是每種開發工具都有它的價值,也各有優缺點,更重要的是如何根據具體的任務選擇合適的工具並利用這些工具來完成工作首先要搞清楚VC能幹什麼.很多人只是聽說VC是最好的開發語言,便去學習,就象大家聽說辟邪劍譜厲害,便都去搶着學一樣,都是很盲目的。

        其實語言並沒有好壞之分,我在用C之前,一直覺的BASIC 是最好用的語言。現在在WINDOWS平臺下編程,VB和DELPHI可以滿足大多數的應用,而且速度不會很慢。使用VC主要是用來開發系統軟件和大型工具軟件以及開發遊戲。



2 如何學好vc


2.1先期條件:英語要好 看懂MSDN 要學好vc,先學好英語,再去codeguru.com之類的網站d/l source code。學好vc=英文好+基本功好+勤奮+聰明。

       1先學習C或C++,在windows的console環境下編寫不太深入涉及API的程序;尤其封裝,繼承,多態一定要精 不要讓vc的各種特性分散注意力。這一階段,可以把重心放到研究算法上.

       2在基本上掌握了語法之後,開始接觸簡單的系統API,學習 Windows的編程原理和機制; 先了解Windows系統的消息機制(多任務,消息映射等)。一開始用基本的SDK形式來開發幾個程序作爲入門(WinSDK編程就是直接調用Windows的API進行編程)(SDK全稱是Software Developers Kit,意思是軟件開發工具箱)(API全稱是application programinterface,意思是應用程序編程接口)。開始進行WinSDK編程用C語言最好,可以撇開C++的特性專心熟悉一下Win32編程的思路以及瞭解windows的消息運行機制。可以編寫簡單的菜單程序,可以簡單地在WM_PAINT下操作 GDI函數當你可以熟練的使用C語言進行WINDOWS程序設計了,你可以嘗試面向對象的方法了。

        3用MFC來開發程序(MFC全稱Microsoft Foundation Classes,是把WinAPI進行封裝的類庫,它是一個類的集合,通過覆蓋WinAPI,爲編程提供了一個面向對象的界面。它使windows程序員能夠利用C++面象對象的特性進行編程,類似BCB的OWL,Delphi的VCL組件。它把那些進行SDK編程時最繁瑣的部分提供給程序員,使之專注於功能的實現。你不妨把它想象成類似TC提供的函數庫吧。)。開始學習MFC,可以從Step tourist學起,看MFC的 源代碼,理解幾個關鍵的宏的定義與實現,特別是MESSAGE MAP。 在學習的過程中爲了給自己增加點挑戰,儘量不要使用resource edit,試着自己編碼實現控件的創建,消息的響應。 再就是看自己的造化了,動手做一些小工具,特別是自己平常需要的,對自己的提高也應該是很有幫助。 並選擇發展的方向. 如果你有一個別人的好程序, 不妨自己跟着他的思路,從小到大自己完成一遍。

          4到了一定程度,一定要學ATL,OLE/COM。需要實際項目的磨練研究OLE/COM技術。 COM/ActiveX技術是MS的核心技術,只有徹底洞察其理論精髓纔可以體會現在的操作系統的技術趨勢,以不變應萬變。從1998.3-1998.5,我基本上是每天攻讀八小時VC,包括看書和上機。那時正上大三,精力充沛,受的起沒完沒了的失敗和痛苦,終於在五月某一天的一節“彙編語言”課上突然想通了,立刻逃課去上機。就這樣我入門了。之後我也象大多數的人一樣學習它的所謂GUI,doc/view結構,打印之類。


        有一天醒來我突然想:我學這些幹嘛嗎?朋友!驚醒呀!人的精力是有限的,正所謂“術業有專攻”,VC說到底,它也是一個工具,學會使用這個工具並不是目的,而僅僅是開始!於是我開始尋找我的方向。

         綜合我的方向有:1.網絡編程。主要是基於TCP/IP的Winsock編程,已完成一個FTP的客戶端編寫,正在寫一個FTP服務器。

         2.通訊編程,主要是串行通訊。

         3.三維動畫,主要是用OpenGL API,一般用來寫界面。我的畢業設計就是以2和3爲基礎。

        我的一些意見:不要對VC控件抱太大希望,除了基本控件,使用其他控件會使你比用API還繁;儘量使用MFC而不是API;儘早定位自己,尋找方向,不要什麼都學,人貴專攻;要了解消息機制,多線程和同步機制,更有回叫(CallBack)機制等,這是VC程序員的基本知識WINDOWS 和 UNIX操作系統都是複雜的多任物系統,提供了一大堆應用編程接口(API,通常是C語言的函數)程序員使用c語言調用這些API便可以開發該系統下的應用程序了。

         這與dos時代的編程接口是不一樣的,那時侯的函數庫是由開發環境提供的(如Turbo C) ,不具有很好的封裝性和設備無關性。每當新版的WINDOWS操作系統發行,便會提供一個相應的plantform SDK(軟件開發包),開發者可以用SDK 編譯C程序。

       vc的核心就是MFC,MFC是個C++類庫,就象結構化程序設計時代的C語言函數庫一樣 ,給程序員提供了豐富的編程接口,簡化了程序的設計。 而MFC就是直接把WINDOWS的C語言編程接口API函數用C++的類封裝而成! 這樣既實現了面向對象的編程思想,又直接使用了WINDOWS的原始編程接口,代碼的效率是 最高的

      1。Window是由個許多DLL搭起來的系統的總稱,開發Window程序就是如何調用這些DLL,對於C程序員,它提供了.h/.lib,這些東西和一些文檔就構成SDK,DDK。。。他們在任何支持DLL調用的開發環境中都可以使用(即函數指針)。

       2。通常SDK指與Window核心調用有關的。。。但並不是專用名稱。也用於其他地方VC只是一個編程工具,就如BC、BCB、Delphi一樣,其實對於編程最根本的就是三個方面,語言、開發包、操作系統API,他們三個方面應該說是相對比較獨立的。VC是MS開發的,所以針對的是windows api,你可以不會C++,也可以在VC下用C寫出很優秀的程序,當然如果你比較熟練C++,並且熟悉開發包MFC的話,工作可能要輕鬆不少。

        所以在我看來,學習的過程可以是這樣的,

       1、先學習C或C++,在windows的console環境下編寫不太深入涉及API的程序;

       2、在基本上掌握了語法之後,開始接觸簡單的系統API,學習Windows的編程原理和機制;

       3、在可以編寫簡單的菜單程序,可以簡單地在WM_PAINT下操作GDI函數後,開始學習MFC,可以從Step tourist學起,看MFC的源代碼,理解幾個關鍵的宏的定義與實現,特別是MESSAGE MAP。在學習的過程中爲了給自己增加點挑戰,儘量不要使resourceedit,試着自己編碼實現控件的創建,消息的響應。再就是看自己的造化了,動手做一些小工具,特別是自己平常需要的,對自己的提高也應該是很有幫助

發佈了13 篇原創文章 · 獲贊 8 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章