Download presentation
Presentation is loading. Please wait.
1
第一章 認識Visual C++ 2005環境架構 1-1 認識Visual C++ 2005 1-1-1 Visual Studio 概觀
1-2 .NET Framework與Visual C 1-2-1 何謂「共通語言執行環境」 1-2-2 瞭解.NET Framework的類別庫 1-2-3 記憶體回收機制 1-3 Visual C 的開發環境 1-3-1 安裝軟體 介面說明 1-3-3 使用方案和專案 環境設定
2
本章學習目標 Visual Studio 2005有那些版本呢?即使是不同的程式語言也會共用相同的開發環境。
認識物件導向設計中重要的Windows元件Net Framework2.0。 列管模組和非列管模組的差異性。 Visual C Express的操作視窗。
3
1-1 認識Visual Studio 2005 Visual Studio 2005是一個組合套件,它包含
Visual Basic 2005、Visual C#、Visual C++、Visual J#等各種程式語言。 此外,還有開發網頁的Visual Web Developer,使用者可以用來開發Web、Windows應用程式、資料庫和行動裝置。
4
1-1-1 Visual Studio 2005概觀 微軟從2002年推出Visual Studio 2002以來,希望藉由.NET Framework平台架構,讓程式開發人員將撰寫的應用程式在不同的平台上執行。 而Visual Studio 2005除了延續原有版本的架構之外,對於開發環境、方案管理及程式的偵錯都加入新的功能。 即使程式開發人員使用不同的程式語言,也能擁有相同的IDE整合環境,能透過Web Form來建立網頁,並以Windows Form來撰寫Windows系統的應用程式, 此外之外,Web Service可處理Http的要求和服務。
5
1-1-2 Visual Studio 2005相關套件 Visual Studio 2005涵蓋了多種版本,概略介紹如下:
簡介 Visual Studio 2005 Team System 提供各項工具,讓開發團隊在開發程式,進行軟體測試時,以專案管理方式來進行追蹤 Visual Studio 2005 Professional Edition 主要用來建置多層式架構中的智慧型用戶端、Web介面,以及行動應用程式,對於資料存取提供視覺化介面 Visual Studio 2005 Tools for the Microsoft Office System 適合用來建置MS Office System智慧型用戶端,讓資料工作者提高工作效率 Visual Studio Standard Edition 提供主從架構,可用來開發Windows應用程式及網站 Visual Studio Express Editions 適合於初學者的入門套件,包含VB、C#、J#及C++等程式語言 上述版本可依據使用者不同需求來做選擇。我們可藉由Visual Studio Express Editions版本為C++程式語言的學習範疇。
6
1-2 .NET Framework與 Visual C++ 2005
雖然本書探討的重點是以C++程式語言為主,但是你也必須對.NET Framework有所瞭解。 從.NET Framework1.0到目前的2.0版本,提供Visual Studio 2005一個安全性高、整合性強的工作環境,而Visual C 也是透過Visual Studio 2005來運作。 .NET Framework包含了兩大元件: 共通語言執行環境(Common Language Runtime,簡稱CLR) .NET Framework類別庫(Class Library),我們將在後面做更詳盡的介紹。
7
1-2-1 何謂「共通語言執行環境」 所謂「共通語言執行環境(CLR)」顧名思義就是提供各種程式語言一個共通的執行環境
必須經過「編譯器(compiler)」將原始程式碼轉換為「目的碼(Object code)」 透過連結(Link)呼叫其所需的函式庫,結合成一個「可執行檔(Executable)」 最後利用「載入程式」(Loader)放入記憶體中才能執行
8
共通語言執行環境--列管模組. 若是透過CLR,則會將原始程式碼編譯成「列管模組」(Managed Module),如下圖:
9
共通語言執行環境--列管模組.. 產生的列管模組,包含 皆屬於列管模組的程式碼。對於CLR提供的功能,例如:
可攜式執行(PE, Portable Executable)檔案標頭 CLR標頭 中繼資料(Metadata) MSIL(Microsoft Intermediate Language)輸出碼 皆屬於列管模組的程式碼。對於CLR提供的功能,例如: 管理程式中的記憶體、 執行緒和記憶體回收機制…等均可使用 此外,透過CLR的「共通型別系統」(Common Type System) 會加強型別安全(Type Safety)的控管機制,如此一來,對於程式碼的執行安全和正確率也會提昇。
10
共通語言執行環境--未列管模組 若未透過CLR為執行階段程式碼,則稱為「未列管模組」(Unmanaged Module)程式碼,這也是Visual C 預設編譯方式。為了讓C++語言撰寫的應用程式發揮最大的效能,編譯為「可執行檔」或是DLL檔案。 未列管模組還包含了COM元件、ActiveX介面及Win32 API函式等。 新版的Visual C 編譯器也能透過CLR將程式碼編譯成「列管模組」來執行。 意指除了可以撰寫舊版的ATL(Active Template Library)專案 MFC(Microsoft Foundation Classes)專案 Win32主控台(Win32 Console Application)專案之外 還可以利用CLR的編譯器將舊版的程式碼轉換成「列管模組」 當然,我們還可以依據需求,讓編譯器不產生原生x86指令碼而是MSIL輸出碼;利用CLR的編譯選項參數將程式碼編譯成混合、可驗證和純粹等不同組件
11
1-2-2 瞭解Net Framework的類別庫
無論開發的應用程式是Windows Form、Web Form或是Web Service都需要.NET Framework提供的類別庫。 為了讓不同的語言之間具有「互通性」(Interoperability),以及在.NET Framework在「共通語言規範」(CLS, Common Language Specification)要求下,使用.NET Framework型別。 此型別可用來建置.NET應用程式、元件和控制項。 此外,利用.NET Framework類別庫也能實作物件導向程式設計,包含衍生自行定義的類別、組合介面和建立抽象(Abstract)類別。 為了建立階層架構,.NET Framework類別庫亦提供「名稱空間」(Namespace)的功能。
12
1-2-3 記憶體回收機制 .NET Framework的記憶體回收機制是用來管理應用程式記憶體的配置和釋放。
通常在CLR記憶體中會保留一塊記憶體來供給Managed使用,稱為「堆積」(Heap)。 當我們在程式碼中使用new運算子建立物件時,CLR便會從Managed中為此物件配置記憶體。 但是,記憶體的空間有限,為了讓CLR為新增加的物件配置記憶體,必須透過記憶體的機制來釋放某些記憶體。 記憶體回收機制會檢查Managed堆積中不再被應用程式使用的物件,依據記憶體的配置來決定回收時機。
13
1-3 Visual C 的開發環境 在Visual C Express版本中,可以建置CLR主控台應用程式、Win32主控台應用程式、Windows Form應用程式、Makefile專案和空白專案。 其中「Win32主控台應用程式」就是利用標準C++語言來建立,所以只支援32位元x86的編譯器,也就是EXE檔或DLL檔,這也是.NET Framework所支援的眾多程式語言中唯一的未列管模組。 而「Windows Form」類似於Visual Basic的表單,利用滑鼠的拖曳動作來加入或清除控制項。但是,Visual C Express版本對於MFC並不支援,使用時必須注意!
14
1-3-1 安裝軟體 Visual Studio Express Editions是微軟針對初學者、學生及程式開發人員,提供精簡、容易使用、容易學習的開發工具,隨書附含的光碟可以取得Visual C Express Edition中文版。
15
系統需求 Visual C Express Edition版本非常適合初學者,它也是一個免費的版本!安裝之前,先了解系統需求!如下表1-2。 硬體/軟體 需求 處理器 600MHz或是更快的處理器 記憶體 最少256MB以上 作業系統 Windows XP Service Pack 2 硬碟空間 最少500MB 光碟機 CD-ROM或DVD-ROM光碟機
16
歩驟1:啟動光碟畫面 請將書附光碟置入光碟機,Visual C Express Edition會自動載入安裝精靈,安裝步驟如下: 直接按「下一歩」鈕
17
歩驟2:授權合約條款 勾選「我接受授權合約中的條款」 直接按「下一歩」鈕
18
步驟3:勾選安裝選項 勾選此兩個選項 直接按「下一歩」鈕
19
步驟4:欲安裝套件 直接按「下一歩」鈕 這是安裝的套件
20
步驟5:安裝套件的畫面 正在安裝套件
21
步驟6:安裝程式的完成 直接按「結束」鈕
22
安裝說明: 步驟3的安裝選項會因系統環境有所不同。一般來說,只要勾選「圖形IDE」和「Microsoft MSDN 2005 Express版」這二個選項即可。 步驟4下載和安裝產品則會依據步驟3的選項而有所不同。
23
1-3-2 介面說明 Visual C++ 2005 Express版本提供一個IDE整合環境,基本上包含 功能表和工具列 方案總管視窗
工具箱視窗和資料庫總管視窗 程式碼編輯視窗 程式碼定義視窗 呼叫瀏覽器視窗 輸出視窗和狀態列
24
認識IDE工作環境 啟動Visual C++ 2005軟體後,首先映入眼廉的是一個IDE整合環境,如下圖: 標題列
工具箱視窗 標題列 功能表列 標準工具列 方案總管 啟動的畫面 程式碼 定義視窗 狀態列 按下此處來改變迴紋針方向,能隱藏工具箱
25
功能表. 提供Visual C++ 2005所有指令。 不同的地方是多了一個「社群」功能表
執行此功能表下的任何指令都會開啟「Microsoft Document Explorer」視窗 我們可以透過此視窗來檢視說明文件,或者輸入欲要查詢的問題。 不過先決條件是使用者必須先連上網路,才會執行相關指令。
26
功能表.. 執行「社群/開發人員中心」指令
27
功能表… 開啟「Microsoft Document Explorer」視窗 提供Visual C++ Express版的MSDN說明文件
28
工具列與工具箱 工具列 工具箱 提供多種用途的圖示按鈕 畫面中只顯示「標準工具列」,提供軟體的基本操作,例如檔案的開啟、儲存、複製和貼上等
提供Windows Form的所需控制項 若是主制台應用程式,工具箱並不會顯示相關的控制項。如果是以Windows Form為主的專案,可以看到表單和控制項等相關元件
29
工具箱 工具箱以Windows Form為主
30
程式碼定義視窗和資料庫總管 程式碼定義視窗 資料庫總管 是一個唯讀編輯器,專案中定義的符號可透過此視窗來顯示。
如果顯示「沒有選取定義」則表示專案中並未儲存任何的定義符號。 資料庫總管 主要用來與後端的資料庫進行存取,不過Visual C Express版本中並不支援。
31
呼叫瀏覽器視窗 可用來搜尋函式呼叫,然後以視窗瀏覽搜尋結果。利用這些提供的函式訊息,可與程式編輯視窗中的原始程式碼互相對照來參考
32
輸出視窗 用來顯示檔案編譯的結果 「全部清除」鈕用來清除視窗中的所有文字 「切換自動換行」讓視窗中的文字能自動換行 用來輸出程式碼編譯的結果
33
呼叫視窗 上述這些視窗如果沒有顯示時,可利用「檢視」功能表的各項指令來取得 在「檢視」功能表中,提供相關視窗的指令
34
隱藏與自動配置. Visual C 工作環境中的視窗,右側的工具箱和資料庫預設是隱藏,當滑鼠滑向此處時才會顯示此視窗,其他的方案總管和程式碼視窗預設是顯示。如果想讓所有視窗能夠自動隱藏,其執行下列步驟: 執行「視窗/自動全部隱藏」指令
35
隱藏與自動配置.. 滑鼠指標移向「方案總管」才會顯示 所有視窗都自動隱藏
36
執行上述指令後,這些相關的視窗就會以預設方式顯示於畫面上。
隱藏與自動配置… 如果想要還原相關視窗的預設值,可執行下列指令: 執行「視窗/重設」指令 執行上述指令後,這些相關的視窗就會以預設方式顯示於畫面上。
37
1-3-3 使用方案和專案 視窗右側的方案總管可以讓我們檢視專案底下的相關檔案,這些檔案會以樹狀方式來顯示。因為尚未使用任何專案,所以畫面上是空白。 一般來說,「方案」和「專案」是有所差別。 「專案」是由不同的檔案來組成;而在「方案」之下可以建立不同的專案,利用「方案資料夾」來管理組織相關的專案群組。 當我們建立一個新專案時,預設方式會將此專案加入方案中,我們透過下面的範例來建立二個空專案,來瞭解專案和方案的關係。
38
建立第一個新專案:MyFirst 啟動Visual C Express 執行「檔案/新增/專案」指令
39
步驟2:新專案的相關設定 點建「一般」專案類型 點建「空專案」範本 輸入名稱「MyFirst」 以預設路徑來儲存檔案 系統會自動勾選此處
按「確定」鈕 依據專案名稱自動產生
40
步驟3:加入第二個專案 然後,我們依據步驟1的方式執行「檔案/新增/專案」指令加入第二個專案【ToSecond】 點建「一般」專案類型
點建「空專案」範本 輸入名稱「ToSecond」 以預設路徑來儲存檔案 選取「加入至方案」0 按「確定」鈕
41
步驟4:檢視方案和專案 這兩個空專案會存放在「MyFirst」資料夾之下。我們可以透過檔案總管來進行檢視:
MyFirst、ToSecond專案 MyFirst方案(方案資料夾)
42
方案的檔案類型. 透過檔案總管,可以看到在「MyFirst」資料夾下有兩種屬於方案的檔案類型「*.sln」和「*.suo」,主要用來儲存方案的設定,讓方案總管以圖形介面來顯示檔案管理的所需資訊。說明如下表: 檔案類型 用途 說明 *.sln Visual Studio方案 將專案、專案項目和方案項目組織後,提供它們在磁碟上的儲存位置。 *.suo 方案使用者選項 每當方案開啟時,記錄和方案有關的所有參數。
43
方案的檔案類型.. 另一個位於MyFirst專案根目錄下的檔案類型是「*.ncb」(no compile browser)。
它是一個唯讀檔案,讓我們在程式碼編輯視窗輸入相關文字時,透過IntelliSense資訊來提供列示文字,讓輸入的文字具備自動完成的功能。 如果不小心刪除此ncb檔案,只要重新開啟方案,就會建立新的ncb檔。
44
方案的檔案類型… 當然,這些建置的專案可利用方案總管視窗來檢視它們的結構,下圖1-4中可以看到建置的兩個專案。 方案名稱 第一個專案名稱
第二個專案名稱
45
更改目錄設定. 當我們完成Visual C Express的安裝後,在「我的文件」資料夾下,會自動產生一個『Visual Studio』資料夾,並包含其他的子資料夾。 其中的【Projects】子資料夾用來存放建立的專案;表示以C/C++語言所開發的程式,都儲存於此。如果不想沿用原有的預設值,可以進行如下的步驟:
46
更改目錄設定.. 修正01-19頁步驟1 執行「工具/選項」指令 選取「一般」選項 點選此處「…」鈕來變更
47
更改目錄設定… 查詢變更「CH01」資料夾 按下「開啟」鈕
48
更改目錄設定…. 變更後的專案位置 按「確定」鈕 我們將範例儲存目錄變更為硬碟D。
49
方案的關閉 執行「檔案/關閉方案」指令
50
方案的開啟. 執行「檔案/開啟/專案方案」指令
51
方案的開啟.. 查詢位置「MyFirst」方案資料夾 確認檔案類型「所有專案類型」 選取「MyFirst.sln」檔案 按「確定」鈕
52
此處選取的「ShowData.vcproj」代表是專案類型
開啟專案和檔案. 如果開啟的類型是專案時,執行如下步驟: 執行「檔案/開啟/專案方案」指令 確認檔案類型「所有專案類型」 選取「ShowData.vcproj」 按「確定」鈕 此處選取的「ShowData.vcproj」代表是專案類型
53
開啟專案和檔案.. 如果是單純的檔案 ,執行如下步驟: 執行「檔案/開啟/檔案」指令
54
開啟專案和檔案… 確認「查詢」位置 選取「data.cpp」檔案 按「確定」鈕
55
3/27 環境設定 對於Visual C++ 2005 Express版本來說,所有的環境設定都可以利用「工具/選項」指令來進行設定
它包含專案和方案的路徑設定,工作環境的使用、文字編輯器、偵錯和資料庫工具
56
變更起始頁. 當我們啟動Visual C++ 2005 Express時,視窗的中間部份會顯示「起始頁」,如果不想顯示此畫面,變更步驟如下:
執行「工具/選項」指令
57
變更起始頁.. 點選「啟動」 選取啟動時要顯示的畫面 按「確定」鈕
58
變更起始頁… 完成上述的步驟後,畫面並不會立即變更!必須等到下次啟動Visual C++ 2005 Express時才會更新。
預設的啟動是「顯示起始頁」;「開啟首頁」則會在軟體啟動時載入Visual C++ .NET首頁(必須開啟網際網路的連線)。 「載入上次載入的專案」會讓軟體啟動時直接開啟上一次撰寫的專案 如果想要讓軟體啟動時自動執行開啟舊檔的交談窗,可以選擇「顯示[開啟專案]對話方塊」 若是設定為「顯示[新增專案]對話方塊」,表示軟體開啟時會直接進入建立新專案的交談窗 「顯示空白環境」則是什麼動作都不執行,啟動後會顯示灰色區塊
59
在程式碼中加入行號. 為了讓讀者瞭解程式碼的位置,講解程式碼時,我們可以在程式碼編輯視窗加入行號,其設定步驟如下: 執行「工具/選項」指令
按下此處來展開「文字編輯器」選項 選取「C/C++」 勾選 「行號」 按「確 定」鈕
60
在程式碼中加入行號.. 完成設定後,在程式碼編輯視窗的左側顯示行號,可供日後解說程式碼的對照參考,如下圖: 顯示的行號
61
1-4 重點整理 .NET Framework 2.0提供共通語言執行環境(CLR)和類別庫來建置Visual Studio的環境。
程式碼如果經過CLR編譯器,會產生列管模組,它包含了中繼資料和MISL輸出碼。此外,列管模組的好處是具有記憶體管理、執行緒和記憶體回收機制。 為了發揮執行效能,C++語言是.NET Framework中唯一未列管的程式碼。當然,我們也可以利用CLR編譯器將C++程式編譯為列管程式碼。 在Visual C Express Edition軟體中,方案和專案並不相同。數個檔案組成了專案,多個專案組成了方案。 有關環境參數的設定,可透過「工具/選項」指令來進行參數的設定和變數。而工作環境中的相關視窗,可利用「檢視」功能表來設定。
Similar presentations