- 21天學通Visual C++
- 張志美等編著
- 2795字
- 2019-01-09 13:53:29
1.4 Visual C++ 6.0的工具組件
本節將簡要介紹Visual C++ 6.0所包含的一些重要工具。在介紹這些重要工具之前,有必要先了解一下Visual C++中工程的基本概念。工程也稱為項目,其實際上就是一些相關源文件的集合,而這些源文件經過編譯和鏈接之后被創建成一個可執行的基于Windows的應用程序或動態鏈接庫。每一個工程也取決于工程子目錄外面的許多文件,如include文件等。
1.4.1 C/C++編譯器
C和C++都是高級語言,C語言主要用于面向過程的程序設計,而C++是C的超集,即C是C++的子集。C++包含了C原有的語法規則,同時增加了面向對象和泛型編程的思想,支持類的定義、對象的創建和通用算法的使用。Visual C++ 6.0的編譯器可以編譯C源代碼和C++源代碼。
什么是“編譯”呢?高級語言要被計算機理解并執行,都要經過一個“翻譯過程”。在編程語言中,這種“翻譯過程”有兩種:編譯型和解釋型。編譯型語言是將該語言一次性編譯成另外一種語言或機器語言,如C/C++;解釋型語言是在運行時逐行或逐段解釋成其他語言或機器語言,如HTML。編譯器通過查看資源代碼文件擴展名來決定語言。針對擴展名為.c的資源文件,則使用處理C源代碼的編譯功能,當然,在標準C++中,C作為C++的一部分,也可以看作是C++源代碼。針對擴展名為.cpp的資源文件,則使用處理C++源代碼的編譯功能。但無論是C源代碼還是C++源代碼,其最后都將生成OBJ目標文件。編譯器符合所有的ANSI標準,包括有關C++庫工作組的最近建議,同時編譯器還有額外的Microsoft擴充。
一般情況下,Visual C++ 6.0中的C/C++編譯器不需要用戶自己打開。當用戶運行應用程序時,該編譯器將啟動編譯功能對其中的C語言或C++語言的源程序進行編譯。
1.4.2 資源編輯器和資源編譯器
在Visual C++ 6.0中所有諸如對話框、菜單等都稱為資源。資源由資源編輯器進行管理。資源編輯器存在于Workspace工作區中,它提供一個所見即所得的菜單編輯器和一個強大的對話框圖形編輯器。另外,它還包含編輯圖標(Icon)、位圖(BMP)和字符串(String)等資源的工具,如圖1-5所示。

圖1-5 資源編輯器
每一個工程通常有一個文本格式的資源腳本(RC)文件來描述工程的菜單、對話框、字符串等資源。RC文件也可以通過#include語句(包含庫文件語句)從其他子目錄中引進資源。這些資源包括位圖、圖標以及所有Visual C++程序共用的資源。用戶可以通過直接編輯文本形式的RC文件來編輯各種資源。但是一般來說,初學者使用文本形式非常容易出錯,推薦使用資源編輯器來編輯資源。
Visual C++ 6.0的資源編譯器從資源編輯器中讀取ASCII資源腳本文件,并且向鏈接程序提供一個二進制RES文件。
說明
讀者不要將資源編輯器與資源編譯器混同。前者用于管理和編輯Visual C++中的資源,后者則用于生成一個二進制文件。這與源代碼編輯器和編譯器的區別是類似的。
1.4.3 鏈接器和調試器
鏈接器從C/C++編譯器和資源編譯器產生的目標文件OBJ文件和資源文件RES文件中讀取信息,連同Windows運行庫和MFC庫,訪問LIB文件,最后生成工程的EXE文件。鏈接時間的長短取決于對源文件改動的大小。
調試器是在一個工程的調試過程中用到的工具。它可以提供很多幫助,諸如查看指定變量的值、對象及內部成員情況、內存分配情況等。在Visual C++ 6.0中,通過單擊【Build】|【Debug】菜單項進入調試器。在調試狀態下的集成開發環境將在菜單欄中新增【Debug】菜單,如圖1-6所示。同時,在窗口下方出現查看變量、對象情況的窗口,如圖1-7所示。

圖1-6 【Debug】菜單

圖1-7 查看窗口
1.4.4 應用程序向導
應用程序向導AppWizard是一個代碼生成器,其能夠創建一個最簡單的應用程序框架。一般來說,AppWizard是Visual C++ 6.0進行應用程序開發的主要工具之一,該應用程序框架的結構和內容取決于在AppWizard向導中所做的選擇,AppWizard可以生成一個帶有類名、源代碼文件名的Windows應用程序的框架。此外,AppWizard還為應用程序創建定制工程和工作區文件。常用的MFC應用程序向導(MFC AppWizard)如圖1-8所示。

圖1-8 應用程序向導(MFC AppWizard)對話框
同時,Microsoft公司已經公開了AppWizard生成工程的基于宏的系統。因此,用戶可根據開發需要定制自己的應用程序向導AppWizard。本章的第一個應用程序Hello World將使用到AppWizard工具。
提示
Visual C++ 6.0中,應用程序向導AppWizard的使用非常頻繁,尤其是MFC AppWizard。幾乎所有的Windows應用程序都是通過其構建最初的程序框架的。
1.4.5 類向導
與應用程序向導AppWizard一樣,類向導ClassWizard也是一個非常重要的工具。用戶可以在【View】菜單中訪問它,也可以在編輯區窗口通過右擊來選擇它。如圖1-9所示,為工程“Hello World”的【MFC ClassWizard】對話框。

圖1-9 【MFC ClassWizard】對話框
ClassWizard可以創建一個新類、新的虛擬函數或者一個新的消息處理函數,并且幫開發者寫出它們的原型、函數體,完成消息映射的過程。而這些只是它強大功能中的一小部分,對于ClassWizard的其他重要的用途,在后續章節中將會詳細介紹。
說明
Visual C++ 6.0中所有事件的觸發、消息的傳遞都是通過類和對象來實現的。因此ClassWizard常用于添加成員變量、消息處理函數。這些內容將在后續章節中詳細講解。
1.4.6 資源瀏覽器
在實際使用中,Visual C++ 6.0提供了一個資源瀏覽器(Source Browser)供用戶瀏覽資源。資源瀏覽器可以使用戶快速地查看并編輯應用程序中出現的所有類、成員函數、變量等。一般來說,瀏覽器可以查看如下內容。
● 查看定義和引用:對選定的任何函數、變量、類型、宏或者類,可以查看它是否定義以及在哪個文件中定義并使用。
● 查看文件大綱:對一個選定的文件,可以查看在該文件中有哪些類、函數和數據成員被定義或使用。
● 查看派生類和成員或者基類和成員:對于一個選定的類,可以以分級結構方式看到派生類或基類以及其成員函數。
● 查看調用圖形或調用程序圖形:對于一個選定的函數,可以以圖形的方式看到其調用的函數及調用它的函數。
【范例1-1】有一個名為Hello World的工程,現在要查看該工程的CHelloWorldView類的基類及其成員函數的情況,就可以通過資源瀏覽器來實現,其查看步驟如下。
1 選定工作臺窗口的CHelloWorldView類,如圖1-10所示。

圖1-10 選定目標類
2 選擇【Tools】|【Source Browser】菜單項,打開【Source Browser】對話框。如果省略上一步在WorkSpace中選定CHelloWorldView類的過程,也可以在對話框【Source Browser】的【Identifier】文本框中直接輸入類的名字,如圖1-11所示。

圖1-11 打開資源瀏覽器
3 如果要查看該類的基類及其成員情況,可以選定【Base Classes and Members】項,單擊【OK】按鈕進行查看。完成上述三個步驟后,工程Hello World的CHelloWorldView類在資源瀏覽器中的顯示結果如圖1-12所示。

圖1-12 顯示Base Classes and Members目錄
【范例解析】該范例通過資源瀏覽器查看類的成員函數和成員變量,讀者可以通過上述步驟查看工程中任意類的相關信息。在實際應用中,往往一個類中包含大量的成員,資源瀏覽器為用戶快速檢索該類的基類和成員提供了方便。
其他幾種查看方式同上幾步操作基本類似,讀者可以動手實際操作一下。如果工程沒有指定創建瀏覽器數據庫,可以重新改變設置。單擊【Project】|【Settings】菜單項,在彈出的對話框中,選擇【C/C++】選項卡。在【C/C++】選項卡中選擇【Generate Browse Info】選項,如圖1-13所示。

圖1-13 設置重寫瀏覽器數據庫
設置完成后,在【Browse Info】頁面上單擊【Build Browse Info File】選項,然后重新編譯程序即可。如果在任何源代碼文件中重新編排了代碼行,Visual C++ 6.0在重新建立該工程時會重寫瀏覽器數據庫,但這將增加連接的時間。
說明
【Project】菜單下的【Setting】對話框用于對Visual C++的集成環境的參數進行設置,在后續章節中還將具體講解。
- 群體智能與數據挖掘
- Python Algorithmic Trading Cookbook
- 基于ARM 32位高速嵌入式微控制器
- MATLAB/Simulink權威指南:開發環境、程序設計、系統仿真與案例實戰
- LAMP網站開發黃金組合Linux+Apache+MySQL+PHP
- Salesforce for Beginners
- TensorFlow Reinforcement Learning Quick Start Guide
- 從零開始學PHP
- Building a BeagleBone Black Super Cluster
- LMMS:A Complete Guide to Dance Music Production Beginner's Guide
- 水晶石影視動畫精粹:After Effects & Nuke 影視后期合成
- IBM? SmartCloud? Essentials
- 基于人工免疫原理的檢測系統模型及其應用
- 人工智能云平臺:原理、設計與應用
- JSP網絡開發入門與實踐