Visual C++ 6.0不僅是一個C++編譯器,而且是一個基於Windows操作系統的可視化集成開發環境,Visual C++6.0由許多組件組成,包括編輯器、調試器以及程序向導AppWizard、類向導Class Wizard等開發工具。
好在已經有很多商業公司、開源組織、基金會甚至是個人,遵照C++標准在不同的平台上進行了實現。這裡的遵照並不是百分之百地遵照C++標准,主要原因有以下幾點:
1)歷史原因。某些編譯器在實現的時候,C++正式標准還沒有出來,或者是按照較老的標准實現的C++標准也是在更新的)。
2)平台原因。某些平台上實現標准中的某些特性比較困難,或者根本不需要這些特性。
3)出於商業目的。某些商業公司實現的時候可能會添加一些其認為可行的或者更加好的特性。
4)其他技術原因。
無論如何,現在可用的C++編譯器實現已經很豐富了,在Windows平台上的實現就有若干種,比較常用的有Visual C++ 6.0附帶的C++編譯器實現,和Borland C++ Builder附帶的C++編譯器實現。就對標准的執行程度來看,後者要好一些。
提示:Visual C++和Borland C++ Builder是Windows操作系統上常見的C++開發工具。前者是微軟公司出品的,應用廣泛。
本書的主要內容就是講述如何使用Visual C++ 6.0進行常見的Windows程序設計。Visual C++ 6.0除了包含了一個C++編譯器之外,還包含了其他的一些可視化開發工具、輔助工具,以及一些C++庫等,這些都將在本書的相關章節進行介紹。
Visual C++ 6.0的開發過程
Visual C++ 6.0編譯器負責將C++源代碼編譯成匯編文件,轉換為中間文件obj文件),然後使用連接器將相關的中間文件連接在一起,生成可執行的二進制文件。其過程如下:
1)源程序經過預處理後交給編譯器。
2)如果代碼無誤,編譯器將代碼生成匯編程序,再生成若干個目標程序obj文件)。
3)鏈接器負責將目標程序進行連接,生成可執行的程序。
Visual C++它大概可以分成三個主要的部分:
1. Developer Studio,這是一個集成開發環境,我們日常工作的99%都是在它上面完成的,再加上它的標題赫然寫著“Microsoft Visual C++”,所以很多人理所當然的認為,那就是Visual C++了。
其實不然,雖然Developer Studio提供了一個很好的編輯器和很多Wizard,但實際上它沒有任何編譯和鏈接程序的功能,真正完成這些工作的幕後英雄後面會介紹。我們也知道,Developer Studio並不是專門用於VC的,它也同樣用於VB,VJ,VID等Visual Studio家族的其他同胞兄弟。所以不要把Developer Studio當成Visual C++, 它充其量只是Visual C++的一個殼子而已。這一點請切記!
2. MFC。從理論上來講,MFC也不是專用於Visual C++,Borland C++,C++Builder和Symantec C++同樣可以處理MFC。同時,用Visual C++編寫代碼也並不意味著一定要用MFC,只要願意,用Visual C++來編寫SDK程序,或者使用STL,ATL,一樣沒有限制。
不過,Visual C++本來就是為MFC打造的,Visual C++中的許多特征和語言擴展也是為MFC而設計的,所以用Visual C++而不用MFC就等於拋棄了Visual C++中很大的一部分功能。但是,Visual C++也不等於MFC。
3. Platform SDK。這才是Visual C++和整個Visual Studio的精華和靈魂,雖然我們很少能直接接觸到它。大致說來,Platform SDK是以Microsoft C/C++編譯器為核心不是Visual C++,看清楚了)。
配合MASM,輔以其他一些工具和文檔資料。上面說到Developer Studio沒有編譯程序的功能,那麼這項工作是由誰來完成的呢?是CL,是NMAKE,和其他許許多多命令行程序,這些我們看不到的程序才是構成Visual Studio的基石。