Visual Studio C使用教程_第1頁
Visual Studio C使用教程_第2頁
Visual Studio C使用教程_第3頁
Visual Studio C使用教程_第4頁
Visual Studio C使用教程_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Visual Studio IDE 簡介 (C+)Visual Studio 集成開發(fā)環(huán)境 (IDE) 提供了一組工具,可幫助您編寫和修改代碼,以及檢測和更正錯誤。在這些主題中,您將創(chuàng)建一個新的標準 C+ 程序,并使用 Visual Studio 為 C+ 開發(fā)人員提供的功能測試該程序的功能。您創(chuàng)建的簡單程序?qū)⒏櫽卸嗌賯€玩家正在玩各種紙牌游戲。本演練涵蓋以下內(nèi)容:· 演練:使用項目和解決方案 (C+)· 演練:生成項目 (C+)· 演練:測試項目 (C+)· 演練:調(diào)試項目 (C+)· 演練:部署程序 (C+)演練:使用項目和解決方案 (C+

2、)在 Visual Studio 中,可以將您的工作組織為項目和解決方案。一個解決方案可以包含多個項目,例如,一個 DLL 和一個引用該 DLL 的可執(zhí)行文件。有關更多信息,請參見介紹解決方案、項目和項。此演練演示如何創(chuàng)建項目,使用“解決方案資源管理器”向項目中添加文件,在文件中鍵入代碼,然后生成項目。創(chuàng)建項目 在使用 Visual Studio 編寫 Visual C+ 程序的過程中,第一個任務是選擇項目的類型。對于每種項目類型,Visual Studio 都為您設置編譯器設置并生成起始代碼。 在此演練中的項目中,您將創(chuàng)建一個基本程序,該程序跟蹤有多少個玩家正在玩不同的紙牌游戲。創(chuàng)

3、建項目1. 在“文件”菜單上指向“新建”,再單擊“項目”。2. 在“項目類型”區(qū)域中,單擊“Visual C+”。然后,在“Visual Studio 已安裝的模板”窗格中,單擊“Win32 控制臺應用程序”。3. 鍵入項目名稱。對于此示例,請鍵入 game。當您創(chuàng)建項目時,Visual Studio 會將該項目放入一個解決方案。默認情況下,解決方案的名稱與項目名稱相同。接受該名稱。您可以接受默認位置、鍵入一個不同的位置或者瀏覽到要保存項目的目錄。單擊“確定”啟動“Win32 應用程序向?qū)А薄?. 在“Win32 應用程序向?qū)А钡摹案攀觥表撋?,單擊“下一步”?. 在“應用程序類型”下的“應用

4、程序設置”頁,選擇“控制臺應用程序”。在“附加選項”下選擇“空項目”設置。單擊“完成”?,F(xiàn)在有了項目,但項目還沒有源代碼文件。使用解決方案資源管理器 “解決方案資源管理器”可幫助您使用解決方案中的文件和其他資源。在本節(jié)中,您將向項目中添加一個類,并且 Visual Studio 將添加 .h 和 .cpp 文件。然后,為測試類的主程序向項目添加一個新的源代碼文件。向項目添加類1. 如果未顯示“解決方案資源管理器”,請在“視圖”菜單上,單擊“解決方案資源管理器”。2. 在“解決方案資源管理器”中,右擊“頭文件”文件夾,指向“添加”,然后單擊“類”。在“Visual C+”類別中,單擊“C+”,在

5、“Visual Studio 已安裝的模板”區(qū)域中單擊“C+ 類”,然后單擊“添加”。3. 在“一般 C+ 類向?qū)А敝校I入 Cardgame 作為“類名”,并接受默認的文件名和設置。單擊“完成”。4. 對已在編輯區(qū)域中打開的 Cardgame.h 文件進行以下更改:· 在類定義的左大括號之后添加兩個私有數(shù)據(jù)成員。int players;static int totalparticipants;· 添加一個采用類型為 int 的參數(shù)之一的公共構造函數(shù)原型。Cardgame(int p);· 刪除 Visual Studio 生成的默認構造函數(shù)。默認構造函數(shù)是沒有參

6、數(shù)的構造函數(shù)。該默認構造函數(shù)類似于:Cardgame(void);5. 在您對 Cardgame.h 文件進行更改之后,該文件應類似于:#pragma onceclass Cardgame int players; static int totalparticipants; public: Cardgame(int p); Cardgame(void);#pragma once 行指明編譯器只包含該文件一次。有關更多信息,請參見once。有關此頭文件中的其他 C+ 關鍵字的信息,請參見 class (C+)、int、Static (C+) 和 public (C+)。6. 雙擊“源文件”文件夾

7、中的 Cardgame.cpp,將其打開以進行編輯。7. 在 #include "Cardgame.h" 之后,添加以下各行。#include <iostream>using namespace std;8. 為采用一個 int 參數(shù)的構造函數(shù)添加代碼。Cardgame:Cardgame(int p) players = p; totalparticipants += p; cout << p << " players have started a new game.There are now " << t

8、otalparticipants << " players in total." << endl;開始鍵入 pl 或 to 時,可以按 Ctrl+空格鍵,以便自動完成功能將為您完成鍵入 players 或 totalparticipants 的操作。9. 刪除 Visual Studio 生成的以下默認構造函數(shù)。Cardgame:Cardgame(void);10. 在您對 Cardgame.cpp 文件進行更改之后,該文件應類似于:#include "Cardgame.h"#include <iostream>usi

9、ng namespace std;Cardgame:Cardgame(int p) players = p; totalparticipants += p; cout << p << " players have started a new game.There are now " << totalparticipants << " players in total." << endl;Cardgame:Cardgame(void)有關 #include 的更多信息,請參見 The #inclu

10、de Directive。添加源文件 現(xiàn)在,為測試類的主程序添加一個源代碼文件。添加新源文件1. 在“解決方案資源管理器”中,右擊“源文件”文件夾,指向“添加”,然后單擊“新建項”。在“Visual C+”類別中,選擇“代碼”,然后單擊“C+ 文件(.cpp)”。2. 鍵入 testgames 作為名稱,然后單擊“添加”。3. 在 testgames.cpp 編輯窗口中,鍵入以下代碼。#include "Cardgame.h"int Cardgame:totalparticipants = 0;int main() Cardgame *bridge = 0; Cardgam

11、e *blackjack = 0; Cardgame *solitaire = 0; Cardgame *poker = 0; bridge = new Cardgame(4); blackjack = new Cardgame(8); solitaire = new Cardgame(1); delete blackjack; delete bridge; poker = new Cardgame(5); delete solitaire; delete poker; return 0;有關此源文件中的 C+ 關鍵字的信息,請參見 new Operator (C+) 和 delete Ope

12、rator (C+)。4. 在“生成”菜單上,單擊“生成解決方案”。來自生成的輸出應顯示在“輸出”窗口中。這表示項目已編譯,并且未發(fā)生錯誤。如果未顯示輸出,請將您的代碼與前面步驟中提供的代碼進行比較。演練:生成項目 (C+)在本步驟中,您將故意在代碼中引入一個 Visual C+ 語法錯誤,以了解什么是編譯錯誤,以及如何修復它。編譯項目時,會顯示錯誤消息以指示所發(fā)生的問題的性質(zhì)和位置。使用 IDE 修復編譯錯誤1. 在 testgames.cpp 中,刪除最后一行中的分號,使代碼如下所示:return 02. 在“生成”菜單上,單擊“生成解決方案”。3. “輸出”窗口中顯示一條消息,指示生成項

13、目失敗。單擊“輸出”窗口中的“轉(zhuǎn)到下一條消息”按鈕(指向右方的綠色箭頭)?!拜敵觥贝翱谥械腻e誤消息和狀態(tài)欄區(qū)域指示右大括號前缺少一個分號。若要查看有關錯誤的更多幫助信息,請突出顯示錯誤,并按 F1 鍵。4. 將分號重新添加到導致語法錯誤的行的末尾:return 0;5. 在“生成”菜單上,單擊“生成解決方案”。“輸出”窗口中顯示一條消息,指示項目已正確編譯。演練:測試項目 (C+)以“調(diào)試”模式運行程序使您可以使用斷點來暫停程序,以檢查變量和對象的狀態(tài)。在本步驟中,您將在程序運行時觀察變量的值,并推斷為什么值與預期的不同。以“調(diào)試”模式運行程序1. 如果“testgames.cpp”文件不可見

14、,請在編輯區(qū)域中單擊該文件對應的選項卡。2. 單擊以下行,將其設置為編輯器中的當前行:solitaire = new Cardgame(1);3. 若要在該行上設置斷點,請單擊“調(diào)試”菜單上的“切換斷點”,或者按 F9。也可以單擊代碼行左側(cè)的區(qū)域來設置或清除斷點。設置了斷點的代碼行的左側(cè)會顯示一個紅色圓圈。4. 在“調(diào)試”菜單上,單擊“開始調(diào)試”,或者按 F5。當程序運行到包含斷點的行時,執(zhí)行將暫時停止(因為程序處于“中斷”模式)。代碼行左側(cè)的黃色箭頭指示該行是要執(zhí)行的下一個代碼行。5. 若要檢查 Cardgame:totalparticipants 變量的值,請將鼠標指針懸停在該變量上方。該

15、變量的名稱及其值 12 即顯示在工具提示窗口中。右擊 Cardgame:totalparticipants 變量。選擇“表達式:totalparticipants”,并單擊“添加監(jiān)視”以在“監(jiān)視”窗口中顯示該變量。您也可以選擇該變量并將其拖動到“監(jiān)視”窗口。6. 在“調(diào)試”菜單上,單擊“逐過程”,或者按 F10 步進到下一行代碼。Cardgame:totalparticipants 的值現(xiàn)在顯示為 13。7. 右擊 main 方法的最后一行 (return 0;),并單擊“運行到光標處”。代碼左側(cè)的黃色箭頭指向要執(zhí)行的下一個語句。8. 在 Cardgame 終止時,Cardgame:total

16、participants 數(shù)應當減小。此時,Cardgame:totalparticipants 應當?shù)扔?0,這是因為所有的 Cardgame 指針都已刪除,但是“監(jiān)視 1”窗口指示 Cardgame:totalparticipants 等于 18。代碼中存在一個 bug,您將在下一節(jié)中檢測并修復它。9. 在“調(diào)試”菜單上,單擊“停止調(diào)試”或者按 Shift-F5 停止程序。演練:調(diào)試項目 (C+)在本步驟中,您將修改程序以修復在測試項目時發(fā)現(xiàn)的問題。修復包含 bug 的程序1. 若要明白在 Cardgame 對象銷毀時會發(fā)生什么,請查看 Cardgame 類的析構函數(shù)。在“視圖”菜單上,單

17、擊“類視圖”,或者單擊“解決方案資源管理器”窗口中的“類視圖”選項卡。展開“游戲”項目樹并單擊“Cardgame”類。下方的區(qū)域顯示類的成員和方法。右擊“Cardgame(void)”析構函數(shù)并單擊“轉(zhuǎn)到定義”。2. 要在 Cardgame 終止時減少 totalparticipants ,請在 Cardgame:Cardgame 析構函數(shù)的左大括號和右大括號之間鍵入以下代碼:totalparticipants -= players;cout << players << " players have finished their game.There are

18、now "<< totalparticipants << " players in total." << endl;3. 進行更改后,Cardgame.cpp 文件應如下所示:#include "Cardgame.h"#include <iostream>using namespace std;Cardgame:Cardgame(int p) players = p; totalparticipants += p; cout << players << " pla

19、yers have started a new game.There are now " << totalparticipants << " players in total." << endl;Cardgame:Cardgame(void) totalparticipants -= players; cout << players << " players have finished their game.There are now " << totalparticipa

20、nts << " players in total." << endl;4. 在“生成”菜單上,單擊“生成解決方案”。5. 在“調(diào)試”菜單上,單擊“啟動調(diào)試”,或按 F5,以“調(diào)試”模式運行該程序。程序?qū)⒃诘谝粋€斷點處暫停。6. 在“調(diào)試”菜單上,單擊“逐過程”或者按 F10 逐句通過程序。請注意,執(zhí)行每個 Cardgame 構造函數(shù)后,totalparticipants 的值會增大。而在刪除每個指針(并調(diào)用析構函數(shù))后,totalparticipants 的值會減小。7. 單步執(zhí)行至程序的最后一行。恰好在執(zhí)行 return 語句之前,totalpa

21、rticipants 等于 0。繼續(xù)逐句通過程序,直到程序退出;或者,在“調(diào)試”菜單上,單擊“運行”或按 F5,允許程序繼續(xù)運行,直到退出。演練:部署程序 (C+)現(xiàn)在,我們創(chuàng)建了應用程序,最后一步是創(chuàng)建可供其他用戶在其計算機上安裝該程序的安裝程序。為此,我們需要將新項目添加到現(xiàn)有解決方案。此新項目的輸出是 setup.exe 文件,該文件用于安裝我們之前在另一臺計算機上創(chuàng)建的應用程序。創(chuàng)建安裝項目和安裝程序1. 在“文件”菜單上,單擊“新建”,再單擊“項目”。隨即出現(xiàn)“添加新項目”對話框。2. 在“已安裝的模板”下,展開“其他項目類型”節(jié)點。接著,展開“安裝和部署”節(jié)點并單擊“Visual

22、Studio Installer”。3. 從“模板”窗格中,選擇“安裝向?qū)А薄fI入安裝項目的名稱,例如 gameInstaller。在“解決方案”列表框中,選擇“添加到解決方案”。單擊“確定”按鈕。4. 將出現(xiàn)“安裝向?qū)А?。單擊“下一步”繼續(xù)。5. 從向?qū)У摹斑x擇一種項目類型”窗格中,選擇“為 Windows 應用程序創(chuàng)建一個安裝程序”選項,并單擊“下一步”繼續(xù)。6. 從向?qū)У摹斑x擇要包括的項目輸出”窗格,選擇“主輸出 來自 游戲”,并單擊“下一步”繼續(xù)。7. 無需在安裝程序中包括任何其他文件,因此,從安裝程序的“選擇要包括的文件”窗格中,單擊“下一步”。8. 檢查向?qū)У母?,并驗證所有內(nèi)容是

23、否正確。單擊“完成”創(chuàng)建項目?!敖鉀Q方案資源管理器”中將列出新的 gameInstaller 項目。此項目將列出應用程序依靠的依賴項(如 C 運行庫或 .NET Framework)以及安裝程序中將包括的項目文件。創(chuàng)建安裝項目后,有許多選項可以更改。有關更多信息,請參見 Visual Studio Installer 部署。9. 通過在“解決方案資源管理器”中選擇安裝程序并從“生成”菜單單擊“生成 gameInstaller”來生成安裝程序。10. 找到上一節(jié)創(chuàng)建的 setup.exe 和 gameInstaller.msi 程序。在計算機上雙擊任一文件安裝應用程序。創(chuàng)建命令行應用程序 (C+

24、)我們已經(jīng)學習了 Visual Studio IDE,現(xiàn)在可以開始使用 Visual C+ 編寫程序了。我們將學習創(chuàng)建的第一個應用程序類型是命令行應用程序。命令行應用程序不包含圖形用戶界面 (GUI)。通常,命令行應用程序從控制臺讀取輸入,并將輸出寫入該控制臺,而不是寫入圖形窗口。在本節(jié)中,您將學習如何創(chuàng)建 C 和 C+ 命令行應用程序。還將學習如何創(chuàng)建不使用 Microsoft 擴展的標準 C 和 C+ 程序。如果您希望使用 Visual C+ 創(chuàng)建在其他操作系統(tǒng)上使用的應用程序,這將很有用。演練:創(chuàng)建標準 C+ 程序 (C+)可以使用 Visual C+ 2010 在 Visual Stu

25、dio 集成開發(fā)環(huán)境 (IDE) 中創(chuàng)建標準 C+ 程序。通過采用此演練中的步驟,您可以創(chuàng)建一個項目,向該項目添加一個新文件,修改該文件以添加 C+ 代碼,然后使用 Visual Studio 編譯并運行程序。您可以鍵入自己的 C+ 程序,或者使用示例程序之一。此演練中的示例程序是一個控制臺應用程序。此應用程序使用標準模板庫 (STL) 中的 set 容器。Visual C+ 使用 2003 C+ 標準進行編譯,但有以下幾點主要例外之處:兩階段名稱查找、異常規(guī)范和導出。此外,Visual C+ 支持若干 C+0x 功能,例如,lambda、自動、static_assert、rvalue 引用和

26、 extern 模板。創(chuàng)建項目并添加源文件1. 通過以下方式創(chuàng)建一個項目:指向“文件”菜單上的“新建”,然后單擊“項目”。2. 在“Visual C+”項目類型窗格中,單擊“Win32”,然后單擊“Win32 控制臺應用程序”。3. 鍵入項目名稱。默認情況下,包含項目的解決方案與項目同名,但您可以鍵入其他名稱。您也可以為項目鍵入其他位置。單擊“確定”創(chuàng)建項目。4. 在“Win32 應用程序向?qū)А敝?,單擊“下一步”,選擇“空項目”,然后單擊“完成”。5. 如果未顯示“解決方案資源管理器”,請在“視圖”菜單上,單擊“解決方案資源管理器”。6. 將一個新源文件添加到項目,如下所示。a. 在“解決方案

27、資源管理器”中,右擊“源文件”文件夾,指向“添加”,然后單擊“新建項”。b. 在“代碼”節(jié)點中單擊“C+ 文件(.cpp)”,為文件鍵入名稱,然后單擊“添加”。該 .cpp 文件即顯示在“解決方案資源管理器”中的“源文件”文件夾中,并且文件將在 Visual Studio 編輯器中打開。7. 在編輯器內(nèi)的文件中,鍵入使用標準 C+ 庫的有效 C+ 程序,或者復制示例程序之一并將其粘貼在文件中。例如,您可以使用 set:find (STL Samples)示例程序,該程序是幫助中附帶的標準模板庫示例之一。如果使用該示例程序,請注意 using namespace std; 指令。此指令使程序能夠

28、使用 cout 和 endl,而無需完全限定名(std:cout 和 std:endl)。8. 保存該文件。9. 在“生成”菜單上,單擊“生成解決方案”。“輸出”窗口顯示有關編譯過程的信息,例如,生成日志的位置,以及指示生成狀態(tài)的消息。10. 在“調(diào)試”菜單上,單擊“開始執(zhí)行(不調(diào)試)”。如果使用了示例程序,將顯示一個命令窗口,其中顯示是否在集合中找到了特定的整數(shù)。演練:在命令行上編譯本機 C+ 程序 (C+)Visual C+ 包括一個 C+ 編譯器,可用來創(chuàng)建從基本 Visual C+ 程序到 Windows 窗體應用程序和組件的各種程序。通過按此演練的過程進行操作,您可以通過使用文本編輯

29、器創(chuàng)建基本的 Visual C+ 程序,然后在命令行上對其進行編譯。也可以編譯使用 Visual Studio 集成開發(fā)環(huán)境 (IDE) 創(chuàng)建的 Visual C+ 程序。有關更多信息,請參見演練:在 Visual Studio 中編譯面向 CLR 的 C+ 程序 (C+)。您可以使用自己的 Visual C+ 程序,而不是鍵入下面步驟中所示的程序。也可以使用其他幫助主題中的任何 Visual C+ 代碼示例程序。創(chuàng)建 Visual C+ 源文件并在命令行上對其進行編譯1. 打開“Visual Studio 2010 命令提示”窗口,方法是單擊“開始”,指向“所有程序”、“Microsoft

30、Visual Studio 2010”、“Visual Studio 工具”,然后單擊“Visual Studio 2010 命令提示”??赡苄枰芾韱T憑據(jù)才能成功編譯此演練中的代碼,具體情況視計算機的操作系統(tǒng)和配置而定。若要以管理員身份運行“Visual Studio 2010 命令提示”窗口,請右擊“Visual Studio 2010 命令提示”,然后單擊“以管理員身份運行”。2. 在命令提示符下,鍵入 notepad basic.cpp,并按 Enter。在系統(tǒng)提示是否創(chuàng)建文件時,單擊“是”。3. 在記事本中,鍵入下列各行。#include <iostream>int ma

31、in() std:cout << "This is a native C+ program." << std:endl; return 0;4. 在“文件”菜單上,單擊“保存”。這樣就創(chuàng)建了一個 Visual C+ 源文件。5. 關閉記事本。6. 在命令提示符下,鍵入 cl /EHsc basic.cpp,并按 Enter。/EHsc 命令行選項指示編譯器啟用 C+ 異常處理。有關更多信息,請參見 /EH(異常處理模型)。cl.exe 編譯器將生成一個名為 basic.exe 的可執(zhí)行程序。您可以在編譯器顯示的多行輸出信息中看到可執(zhí)行程序的名稱。7.

32、 若要查看目錄中具有名稱 basic 以及任何文件擴展名的文件的列表,請鍵入 dir basic.* 并按 Enter。.obj 文件是一個中間格式文件,可以安全地忽略它。8. 若要運行 basic.exe 程序,請鍵入 basic 并按 Enter。該程序顯示以下文本并退出:This is a native C+ program.9. 若要關閉“Visual Studio 2010 命令提示”窗口,請鍵入 exit 并按 Enter。編譯使用 .NET 類的 Visual C+ 程序 下面的步驟演示如何編譯使用 .NET Framework 類的 Visual C+ 程序。您必須使用 /cl

33、r(公共語言運行時編譯)編譯器選項,因為此程序使用 .NET 類并且必須包括必要的 .NET 庫。Visual C+ 編譯器生成的 .exe 文件包含 MSIL 代碼,而不是可由計算機執(zhí)行的指令。按照本過程中的步驟編譯幫助主題中的任何 Visual C+ 示例程序。在命令行上編譯 Visual C+ .NET 控制臺應用程序1. 打開“Visual Studio 2010 命令提示”窗口,方法是單擊“開始”,指向“所有程序”、“Microsoft Visual Studio 2010”、“Visual Studio 工具”,然后單擊“Visual Studio 2010 命令提示”??赡苄枰?/p>

34、理員憑據(jù)才能成功編譯此演練中的代碼,具體情況視計算機的操作系統(tǒng)和配置而定。若要以管理員身份運行“Visual Studio 2010 命令提示”窗口,請右擊“Visual Studio 2010 命令提示”,然后單擊“以管理員身份運行”。2. 在命令提示符下,鍵入 notepad basicclr.cpp,并按 Enter。在系統(tǒng)提示是否創(chuàng)建文件時,單擊“是”。3. 在記事本中,鍵入下列各行。int main() System:Console:WriteLine("This is a Visual C+ program.");4. 在“文件”菜單上,單擊“保存”。您已經(jīng)創(chuàng)建

35、了一個使用 .NET 類 (Console) 的 Visual C+ 源文件,該文件位于 System 命名空間。5. 關閉記事本。6. 在命令提示符下,鍵入 cl /clr basicclr.cpp,并按 Enter。cl.exe 編譯器將生成一個名為 basicclr.exe 的可執(zhí)行程序。7. 若要查看目錄中具有名稱 basicclr 以及任何文件擴展名的文件的列表,請鍵入 dir basicclr.* 并按 Enter。.obj 文件是一個中間格式文件,可以安全地忽略它。.manifest 文件是包含有關程序集的信息的 XML 文件。(程序集是 .NET 部署單元,例如 .exe 程序

36、或 .dll 組件或庫。)8. 若要運行 basicclr.exe 程序,請鍵入 basicclr 并按 Enter。該程序顯示以下文本并退出:This is a Visual C+ program.9. 若要關閉“Visual Studio 2010 命令提示”窗口,請鍵入 exit 并按 Enter。演練:在 Visual Studio 中編譯面向 CLR 的 C+ 程序 (C+)通過使用 Visual Studio 開發(fā)環(huán)境,您可以創(chuàng)建使用 .NET 類的 Visual C+ 程序,并對它們進行編譯。在本過程中,您可以鍵入自己的 Visual C+ 程序,也可以使用示例程序之一。本過程中

37、使用的示例程序創(chuàng)建一個名為 textfile.txt 的文本文件,并將其保存到項目目錄中。在 Visual Studio 中創(chuàng)建新項目并添加新的源文件1. 創(chuàng)建新項目。在“文件”菜單上,指向“新建”,然后單擊“項目”。2. 在“Visual C+ 項目類型”中單擊“CLR”,然后單擊“CLR 空項目”。3. 鍵入項目名稱。默認情況下,包含項目的解決方案與新項目同名,當然,您也可以鍵入其他名稱。如果愿意,您可以為項目輸入一個不同的位置。單擊“確定”創(chuàng)建新項目。4. 如果“解決方案資源管理器”不可見,請單擊“視圖”菜單上的“解決方案資源管理器”。5. 向該項目添加新的源文件:· 在解決方

38、案資源管理器中右擊“源文件”文件夾,指向“添加”并單擊“新建項.”。· 單擊“C+ 文件(.cpp)”,鍵入一個文件名,然后單擊“添加”。該 .cpp 文件即顯示在“解決方案資源管理器”中的“源文件”文件夾中,并且,在鍵入要包含在該文件中的代碼的位置,出現(xiàn)一個選項卡式窗口。6. 在 Visual Studio 中,在新創(chuàng)建的選項卡中單擊并鍵入有效的 Visual C+ 程序,或者復制并粘貼示例程序之一。例如,您可以使用 如何:編寫文本文件 示例程序(位于“編程指南”中的“文件處理和 I/O節(jié)點)。如果要使用示例程序,請注意在創(chuàng)建 .NET 對象時,您可以使用 gcnew關鍵字(而非

39、new),且 gcnew 返回一個句柄 () 而不是指針 (*):StreamWriter sw = gcnew StreamWriter(fileName);有關新 Visual C+ 語法的更多信息,請參見 Language Features for Targeting the CLR。7. 在“生成”菜單上,單擊“生成解決方案”?!拜敵觥贝翱陲@示有關編譯過程的信息,如生成日志的位置,以及指示生成狀態(tài)的消息。如果進行了更改,并在未執(zhí)行生成的情況下運行該程序,則對話框可能指示該項目已過期。如果要讓 Visual Studio 始終使用文件的當前版本,并且在每次生成應用程序時不發(fā)出提示,請在單

40、擊“確定”之前選中此對話框上的復選框。8. 在“調(diào)試”菜單上,單擊“開始執(zhí)行(不調(diào)試)”。9. 如果您使用的是示例程序,則在運行程序時將顯示一個命令窗口,指示已創(chuàng)建了該文本文件。按任意鍵,關閉該命令窗口。textfile.txt 文本文件現(xiàn)在位于您的項目目錄中。您可以使用記事本打開此文件。說明選擇空 CLR 項目模板會自動設置 /clr 編譯器選項。若要驗證這一點,請在“解決方案資源管理器”中右擊該項目,再單擊“屬性”,然后選中“配置屬性”的“常規(guī)”節(jié)點中的“公共語言運行時支持”選項。演練:編譯 C 程序Visual C+ 2010 中包括一個 C 編譯器,可用來創(chuàng)建從基本的 C 程序到 Wi

41、ndows API 應用程序的各種程序。此演練演示如何使用文本編輯器創(chuàng)建一個基本的 C 程序,然后在命令行上對其進行編譯。您可以使用自己的 C 程序,而不是鍵入此演練中所示的示例程序。也可以使用幫助主題中包含的任何 C 代碼示例程序。默認情況下,Visual C+ 編譯器將以 .c 結(jié)尾的所有文件視為 C 源代碼,將以 .cpp 結(jié)尾的所有文件視為 C+ 源代碼。若要強制編譯器將所有文件視為 C(而不管文件擴展名如何),請使用 /Tc 編譯器選項。創(chuàng)建 C 源文件并在命令行上對其進行編譯1. 單擊“開始”,指向“所有程序”、“Microsoft Visual Studio 2010”和“Vis

42、ual Studio 工具”,然后單擊“Visual Studio 2010 命令提示”。根據(jù)計算機上的 Windows 版本和系統(tǒng)安全配置,可能必須右擊“Visual Studio 2008 命令提示”,然后單擊“以管理員身份運行”,才能成功運行按下列步驟創(chuàng)建的應用程序。說明“Visual Studio 2010 命令提示”會自動設置 C 編譯器和所需的任何庫的正確路徑。應使用它而不是使用普通的“命令提示符”窗口。有關更多信息,請參見為命令行生成設置路徑和環(huán)境變量。2. 在命令提示符下,鍵入 notepad simple.c,并按 Enter。在系統(tǒng)提示是否創(chuàng)建文件時,單擊“是”。3. 在記

43、事本中,鍵入下列各行。#include <stdio.h>int main() printf("This is a native C program.n"); return 0;4. 在“文件”菜單上,單擊“保存”,以創(chuàng)建 C 源文件。5. 關閉記事本。6. 在命令提示符下,鍵入 cl simple.c,并按 Enter。cl.exe 編譯器將生成一個可執(zhí)行程序 Simple.exe。您可以在編譯器顯示的多行輸出信息中看到可執(zhí)行程序的名稱。Microsoft (R) 32-bit C/C+ Optimizing Compiler Version 16.00 fo

44、r 80x86Copyright (C) Microsoft Corporation.All rMicrosoft (R) Incremental Linker Version 10.00Copyright (C) Microsoft Corporation.All rights reserved./out:simple.exesimple.obj7. 若要查看 simple 目錄中的所有文件的列表,請鍵入 dir simple.* 并按 Enter。.obj 文件是一個中間格式文件,可以安全地忽略它。8. 若要運行 Simple.exe,請鍵入 simple 并按 Enter。該程序顯示以下

45、文本并退出:This is a native C program.9. 若要關閉命令提示符窗口,請鍵入 exit 并按 Enter。創(chuàng)建 Windows 應用程序 (C+)現(xiàn)在我們學習了 Visual Studio IDE 和命令行應用程序,下面將學習如何創(chuàng)建 Windows 應用程序。使用 Visual C+,可以通過使用多種不同的技術來創(chuàng)建 Windows 應用程序,如 Windows API(也稱為 Win32 API)和 .NET Framework。在本節(jié)中,我們將通過使用 Win32 API 和 .NET Framework 創(chuàng)建兩個簡單的 Windows 應用程序。我們還將通過使

46、用 .NET Framework 創(chuàng)建 Windows 窗體控件,最后將通過使用 DirectX 創(chuàng)建一個簡單的游戲。創(chuàng)建 Win32 應用程序 (C+)Win32 API(也稱為 Windows API)是用于創(chuàng)建 Windows 應用程序的基于 C 的框架,自 Windows 1.0 以來就已存在。在 Windows API 中可以找到有關此 API 的大量文檔。在本過程中,我們將創(chuàng)建向窗口顯示“Hello, World!”的簡單 Win32應用程序。過程中的步驟對于所有 Win32 應用程序都是相同的。完成此過程后,您可以將這里創(chuàng)建的代碼用作創(chuàng)建任何其他 Win32 應用程序的主干。創(chuàng)建

47、新的 Win32 項目1. 在“文件”菜單上,單擊“新建”,然后單擊“項目.”。2. 在“項目類型”窗格中,選擇“Visual C+”節(jié)點中的“Win32”,然后在“模板”窗格中選擇“Win32 項目”。鍵入項目的名稱,如 win32app。您可以接受默認位置、鍵入一個位置或者導航到要保存項目的目錄。3. 在“Win32 應用程序向?qū)А敝校x擇“下一步”。4. 在“Win32 應用程序向?qū)А敝?,在“應用程序類型”下選擇“Windows 應用程序”。在“附加選項”下選擇“空項目”。原樣保留剩余的選項。單擊“完成”創(chuàng)建項目。5. 在“項目”菜單中選擇“添加新項.”,將 C+ 文件添加到項目中。在“

48、添加新項”對話框中選擇“C+ 文件(.cpp)”。為文件鍵入一個名稱,如 GT_HelloWorldWin32.cpp,并單擊“添加”。啟動 Win32 應用程序1. 正如您所了解的,每個 C 和 C+ 應用程序必須具有一個 main 函數(shù)。此函數(shù)是應用程序的起始點。類似地,在 Win32 應用程序中,每個應用程序必須具有一個 WinMain 函數(shù)。WinMain 的語法如下所示:int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);有關此函數(shù)的參數(shù)和返回值

49、的解釋,請參見 WinMain 函數(shù)。2. 因為應用程序代碼必須使用現(xiàn)有的定義,所以應將 include 語句添加到文件中以使用它們。例如:#include <windows.h>#include <stdlib.h>#include <string.h>#include <tchar.h>3. 除 WinMain 外,每個 Win32 應用程序還必須具有第二個函數(shù)(通常稱為 WndProc),它代表窗口過程。WndProc 的語法如下所示:LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

50、此函數(shù)的用途是處理應用程序從操作系統(tǒng)接收的任何消息。應用程序何時從操作系統(tǒng)接收消息?始終接收!例如,假設我們創(chuàng)建了包含“確定”按鈕的對話框。當用戶單擊該按鈕時,操作系統(tǒng)向應用程序發(fā)送消息,使我們知道某位用戶按下了此按鈕。WndProc 函數(shù)負責響應該事件。在本示例中,適當?shù)捻憫赡苁顷P閉對話框。有關更多信息,請參見窗口過程。向 WinMain 添加功能1. 首先,在 WinMain 函數(shù)內(nèi)部創(chuàng)建 WNDCLASSEX 類型的窗口類結(jié)構。此結(jié)構包含有關窗口的信息,如應用程序圖標、窗口的背景色、在標題欄中顯示的名稱、窗口過程函數(shù)的名稱等等。典型的 WNDCLASSEX 結(jié)構如下: WNDCLASS

51、EX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBa

52、ckground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION);有關此結(jié)構的字段解釋,請參見 WNDCLASSEX。2. 現(xiàn)在已經(jīng)創(chuàng)建了窗口類,接下來您必須注冊它。使用 RegisterClassEx 函數(shù),并將窗口類結(jié)構作為參數(shù)傳遞: if (!RegisterClassEx(&wcex) MessageBo

53、x(NULL, _T("Call to RegisterClassEx failed!"), _T("Win32 Guided Tour"), NULL); return 1; 3. 現(xiàn)在已經(jīng)注冊了您自己的類,接下來創(chuàng)建窗口。使用 CreateWindow 函數(shù),如下所示:static TCHAR szWindowClass = _T("win32app");static TCHAR szTitle = _T("Win32 Guided Tour Application");/ The parameters to

54、CreateWindow explained:/ szWindowClass: the name of the application/ szTitle: the text that appears in the title bar/ WS_OVERLAPPEDWINDOW: the type of window to create/ CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y)/ 500, 100: initial size (width, length)/ NULL: the parent of this window/ NUL

55、L: this application dows not have a menu bar/ hInstance: the first parameter from WinMain/ NULL: not used in this applicationHWND hWnd = CreateWindow( szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 100, NULL, NULL, hInstance, NULL);if (!hWnd) MessageBox(NULL, _T("Call to CreateWindow failed!"), _T("Win32 Guided Tour"), NULL); return 1;此函數(shù)返回 HWND,它是某個窗口的句柄。有關更多信息,請參見 Windows 數(shù)據(jù)類型。4. 創(chuàng)建了窗口后,我們可以使用以下代碼將其顯示在屏幕上:/ The parameters to ShowWindow explained:/ hWnd: the value returned from CreateWindow/ nCmdSh

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論