目錄
先決條件
入門
一、演練:使用項目和解決方案 (C++)
準(zhǔn)備工作
創(chuàng)建項目
在 Visual Studio 中創(chuàng)建項目
組織項目和文件
向項目添加類
向主函數(shù)添加測試代碼
向項目添加測試代碼
生成并運(yùn)行應(yīng)用項目
生成并運(yùn)行此項目
二、演練:生成項目 (C++)
先決條件
修復(fù)編譯錯誤
三、演練:測試項目 (C++)
先決條件
在調(diào)試模式下運(yùn)行程序
四、演練:調(diào)試項目 (C++)
先決條件
修復(fù)含有 bug 的程序
先決條件
Visual Studio 集成開發(fā)環(huán)境 (IDE) 提供一組功能,幫助你管理大型和小型代碼項目、寫入和重構(gòu)代碼以及使用靜態(tài)分析和功能強(qiáng)大的調(diào)試工具檢測和更正錯誤。本文重在介紹在管理項目,寫入、測試和調(diào)試代碼,并將代碼部署到其他計算機(jī)的過程中所需的每個步驟
如果尚未安裝 Visual Studio,請在Visual studio2022官網(wǎng)進(jìn)行下載安裝。官網(wǎng)打開->下載 Visual Studio->?安裝 Visual Studio 安裝程序->選擇工作負(fù)載->?選擇各個組件(可選)->安裝語言包(可選)->?選擇安裝位置(可選)->開始開發(fā)、
入門
若要開始使用 Visual Studio IDE 生成 C++ 應(yīng)用,請按順序完成下面的過程。
一、演練:使用項目和解決方案 (C++)
介紹如何在 Visual Studio 中創(chuàng)建 C++ 項目,添加代碼,然后生成并運(yùn)行該項目。 本演練中的項目是一個程序,該程序跟蹤正在玩各種紙牌游戲的玩家數(shù)量。
在 Visual Studio 中,可以將工作組織為項目和解決方案。 一個解決方案可以包含多個項目,例如,一個 DLL 和一個引用該 DLL 的可執(zhí)行文件。如果尚未安裝,請按照教程完成安裝后的后續(xù)步驟操作,確保 C++ 組件正確安裝且正常工作。
了解 C++ 語言的基礎(chǔ)知識以及編譯器、鏈接器和調(diào)試程序的用途會很有幫助。 本教程還假定你熟悉 Windows 及其菜單、對話框的使用方式、、
準(zhǔn)備工作
- 若要完成準(zhǔn)備工作,需要 Visual Studio 2017 或更高版本,如果尚未安裝,請按照教程完成安裝后的后續(xù)步驟操作,確保 C++ 組件正確安裝且正常工作。
- 了解 C++ 語言的基礎(chǔ)知識以及編譯器、鏈接器和調(diào)試程序的用途會很有幫助。 本教程還假定你熟悉 Windows 及其菜單、對話框的使用方式
創(chuàng)建項目
若要創(chuàng)建項目,請先選擇項目類型模板。 對于每種項目類型,Visual Studio 會設(shè)置編譯器設(shè)置,并根據(jù)類型生成起始代碼,稍后可修改該代碼。 根據(jù)使用的 Visual Studio 版本,以下步驟會有所不同。 若要查看 Visual Studio 首選項的文檔,請使用“版本”選擇器控件。 它位于此頁面上目錄表的頂部。
在 Visual Studio 中創(chuàng)建項目
- 在主菜單中,選擇“文件”>“新建”>“項目”,打開“創(chuàng)建新項目”對話框。
- 在對話框頂部,將“語言”設(shè)置為“C++”,將“平臺”設(shè)置為“Windows”,并將“項目類型”設(shè)置為“控制臺”。
- 從篩選的項目類型列表中,選擇“控制臺應(yīng)用”,然后選擇“下一步” 。 在下一頁中,輸入“游戲”作為項目名稱。
- 可以接受“位置”下拉列表中的默認(rèn)位置、輸入其他位置或者選擇“瀏覽”按鈕,瀏覽要保存項目的目錄 。
- 創(chuàng)建項目時,Visual Studio 將該項目放入一個解決方案。 默認(rèn)情況下,解決方案的名稱與項目名稱相同。 可以更改“解決方案名稱”框中的名稱,但是對于此示例,請保留默認(rèn)名稱。
- 選擇“創(chuàng)建”按鈕創(chuàng)建項目。
- Visual Studio 創(chuàng)建新的解決方案和項目文件,并為它生成的 Game.cpp 源代碼文件打開編輯器。
組織項目和文件
可以使用“解決方案資源管理器”來組織和管理解決方案中的項目、文件及其他資源。
本部分演練演示如何將類添加到項目中。 添加類時,Visual Studio 添加相應(yīng)的 .h 和 .cpp 文件。 可以在“解決方案資源管理器”中查看結(jié)果。
向項目添加類
-
如果 Visual Studio 中未顯示“解決方案資源管理器”窗口,請在菜單欄上選擇“視圖”>“解決方案資源管理器”。
-
在“解決方案資源管理器”中,選擇“游戲”項目 。 在菜單欄上選擇“項目”>“添加類”。
-
在“添加類”對話框中的“類名”框內(nèi)輸入“Cardgame”。 請勿修改默認(rèn)的文件名和設(shè)置。 選擇“確定” 按鈕。
Visual Studio 創(chuàng)建新的文件并將其添加到項目。 可以在“解決方案資源管理器”窗口中查看這些文件。 Cardgame.h 和 Cardgame.cpp 文件在編輯器中打開。
-
編輯 Cardgame.h 文件,并進(jìn)行以下更改:
-
在類定義的左大括號之后添加兩個私有數(shù)據(jù)成員。
int players; static int totalParticipants;
-
修改 Visual Studio 生成的默認(rèn)構(gòu)造函數(shù)。 在?
public:
?訪問說明符之后,將發(fā)現(xiàn)如下所示的行:Cardgame();
修改構(gòu)造函數(shù),使其帶有一個類型為?
int
、名為“players”的參數(shù)。Cardgame(int players);
-
在默認(rèn)析構(gòu)函數(shù)之后,為名為 GetParticipants 的?
static int
?成員函數(shù)添加內(nèi)聯(lián)聲明,該成員函數(shù)沒有參數(shù)且返回?totalParticipants
?值。static int GetParticipants() { return totalParticipants; }
對 Cardgame.h 文件進(jìn)行更改之后,該文件應(yīng)類似于以下代碼:
#pragma once
class Cardgame
{
int players;
static int totalParticipants;
public:
Cardgame(int players);
~Cardgame();
static int GetParticipants() { return totalParticipants; }
};
#pragma once
?行通知編譯器僅包含一次頭文件。
-
選擇編輯窗格頂部的“Cardgame.cpp”選項卡,打開它進(jìn)行編輯。
-
刪除文件中的所有內(nèi)容,并將其替換為以下代碼
#include "pch.h" // 在Visual Studio 2019中刪除此行
#include "Cardgame.h"
#include <iostream>
using namespace std;
int Cardgame::totalParticipants = 0;
Cardgame::Cardgame(int players)
: players(players)
{
totalParticipants += players;
cout << players << "玩家開始了新游戲 "
<< totalParticipants << " 球員總數(shù)." << endl;
}
Cardgame::~Cardgame()
{
}
輸入代碼時,可以使用自動完成功能。 例如,如果使用鍵盤輸入此代碼,可以輸入 pl 或 tot,然后按 Ctrl+空格鍵。 自動完成功能可為你輸入?players
?或?totalParticipants
。?
向主函數(shù)添加測試代碼
向應(yīng)用添加一些測試新函數(shù)的代碼
向項目添加測試代碼
// Game.cpp : 定義控制臺應(yīng)用程序的入口點.
//
#include "pch.h" // 在Visual Studio 2019中刪除此行
#include "Cardgame.h"
#include <iostream>
using namespace std;
void PlayGames()
{
Cardgame bridge(4);
Cardgame blackjack(8);
Cardgame solitaire(1);
Cardgame poker(5);
}
int main()
{
PlayGames();
return 0;
}
此代碼會將測試函數(shù)?PlayGames
?添加到源代碼,并在?main
?(主函數(shù))內(nèi)調(diào)用。?
生成并運(yùn)行應(yīng)用項目
接下來,生成項目并運(yùn)行應(yīng)用
在菜單欄上,依次選擇“生成”>“生成解決方案” 。
來自生成的輸出顯示在“輸出”窗口中。 如果生成成功,輸出應(yīng)類似于
1>------ Build started: Project: Game, Configuration: Debug Win32 ------
1>pch.cpp
1>Cardgame.cpp
1>Game.cpp
1>Generating Code...
1>Game.vcxproj -> C:\Users\<username>\source\repos\Game\Debug\Game.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
“輸出”窗口可以根據(jù)不同的生成配置顯示不同步驟,但是如果項目生成成功,最后一行應(yīng)類似于上面顯示的輸出。
如果生成未成功,請將你的代碼與前面步驟中顯示的代碼進(jìn)行比較。
4 players have started a new game. There are now 4 players in total.
8 players have started a new game. There are now 12 players in total.
1 players have started a new game. There are now 13 players in total.
5 players have started a new game. There are now 18 players in total.
-
按任意鍵關(guān)閉控制臺窗口。
恭喜,你已成功生成應(yīng)用項目和解決方案。 繼續(xù)完成下面的教程,詳細(xì)了解如何在 Visual Studio 中生成 C++ 代碼項目。
二、演練:生成項目 (C++)
先決條件
具備 C++ 語言的基礎(chǔ)知識
修復(fù)編譯錯誤
-
在 Games.cpp 中,刪除最后一行中的分號,使其類似于以下語句:
return 0
-
在菜單欄上,依次選擇“生成”>“生成解決方案” 。
-
“錯誤列表”窗口中的消息指示生成項目過程中出現(xiàn)了錯誤。 該聲明類似于以下錯誤消息:
error C2143: syntax error: missing ';' before '}'
若要查看有關(guān)此錯誤的幫助信息,請在“錯誤列表”窗口中將其突出顯示,然后選擇 F1?鍵。
-
將分號重新添加到導(dǎo)致語法錯誤的行的末尾:
return 0;
-
在菜單欄上,依次選擇“生成”>“生成解決方案” 。
“輸出”窗口中的消息指示項目已成功編譯。
1>------ Build started: Project: Game, Configuration: Debug Win32 ------
1>Game.cpp
1>Game.vcxproj -> C:\Users\<username>\source\repos\Game\Debug\Game.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
三、演練:測試項目 (C++)
在調(diào)試模式下運(yùn)行程序時,可使用斷點來暫停程序以檢查變量和對象的狀態(tài)是怎樣的。
在本教程中,將在程序運(yùn)行時觀察變量的值,并推導(dǎo)出為什么該值不是想要的的值
先決條件
具備 C++ 語言的基礎(chǔ)知識。
完成了上述部分的操作
在調(diào)試模式下運(yùn)行程序
打開 Game.cpp 進(jìn)行編輯。
選擇此代碼行:
Cardgame solitaire(1);
要在該行上設(shè)置斷點,請在菜單欄上選擇“調(diào)試”>“切換斷點”,或選擇 F9 鍵。 行的左側(cè)出現(xiàn)一個紅色圓圈,它表示已設(shè)置斷點。 要刪除斷點,可再次選擇菜單命令或 F9?鍵。
如果使用鼠標(biāo),也可通過單擊左邊距來設(shè)置或刪除斷點。
在菜單欄上,依次選擇“調(diào)試”>“啟動調(diào)試”,或選擇 F5 鍵。
由于程序處于“中斷”模式,因此當(dāng)程序到達(dá)斷點行時,執(zhí)行將暫停。 代碼行左側(cè)的黃色箭頭表示它是要執(zhí)行的下一行。
要檢查變量?
Cardgame::totalParticipants
?的值,請將指針移到?Cardgame
?上,然后將其移到工具提示窗口左側(cè)的擴(kuò)展控件上。 顯示變量名稱?totalParticipants
?及其值 12。打開變量?
Cardgame::totalParticipants
?的快捷菜單,然后選擇“添加監(jiān)視”以在“監(jiān)視 1”窗口中顯示該變量。 也可突出顯示一個變量并將其拖動到“監(jiān)視 1”窗口。要轉(zhuǎn)到下一代碼行,請在菜單欄上依次選擇“調(diào)試”>“逐過程執(zhí)行”或選擇 F10 鍵。
“監(jiān)視 1”窗口中?
Cardgame::totalParticipants
?的值現(xiàn)在顯示為 13。打開?
return 0;
?語句的快捷菜單,然后選擇“運(yùn)行到光標(biāo)處”。 代碼左側(cè)的黃色箭頭指向要執(zhí)行的下一語句。
Cardgame
?終止時,Cardgame::totalParticipants
?數(shù)應(yīng)減少。 此時,Cardgame::totalParticipants
?應(yīng)等于 0,因為已刪除所有?Cardgame
?實例,但“監(jiān)視 1”窗口指示?Cardgame::totalparticipants
?等于 18。 此差異表明代碼中存在 bug。 可要停止該程序,請在菜單欄上選擇“調(diào)試”>“停止調(diào)試”或選擇 Shift+F5 鍵盤快捷方式
四、演練:調(diào)試項目 (C++)
先決條件
-
假定你具備 C++ 語言的基礎(chǔ)知識。
修復(fù)含有 bug 的程序
-
若要查看銷毀?
Cardgame
?對象時發(fā)生的情況,請查看?Cardgame
?類的析構(gòu)函數(shù)。在菜單欄上,選擇“視圖”>“類視圖”。
在“類視圖”窗口中,展開“游戲”項目樹并選擇“Cardgame”類來顯示類成員和方法 。
打開“~Cardgame(void)”析構(gòu)函數(shù)的快捷菜單,然后選擇“轉(zhuǎn)到定義” 。
-
若要在 Cardgame 終止時減少?
totalParticipants
,請在?Cardgame::~Cardgame
?析構(gòu)函數(shù)的左大括號和右大括號之間鍵入以下代碼。
totalParticipants -= players;
cout << players << "玩家已經(jīng)完成了他們的游戲。 現(xiàn)在有 "
<< totalParticipantotalParticipants -= players;
在對 Cardgame.cpp 文件進(jìn)行更改之后,該文件應(yīng)類似于以下代碼:
#include "Cardgame.h"
#include <iostream>
using namespace std;
int Cardgame::totalParticipants = 0;
Cardgame::Cardgame(int players)
: players(players)
{
totalParticipants += players;
cout << players << " 玩家已經(jīng)完成了他們的游戲。 現(xiàn)在有 "
<< totalParticipants << " 球員總數(shù)." << endl;
}
Cardgame::~Cardgame()
{
totalParticipants -= players;
cout << players << "玩家已經(jīng)完成了他們的游戲。 現(xiàn)在有 "
<< totalParticipants << " 球員總數(shù)." << endl;
}
-
在菜單欄上,依次選擇“生成”>“生成解決方案” 。
-
生成完成后,可以通過選擇菜單欄上的“調(diào)試”>“啟動調(diào)試”或選擇 F5 鍵在調(diào)試模式下運(yùn)行此解決方案。 程序在第一個斷點處暫停程序。
-
若要逐步執(zhí)行此程序,請在菜單欄上,選擇“調(diào)試”>“逐過程執(zhí)行”或選擇 F10 鍵。
請注意,執(zhí)行每個?
Cardgame
?構(gòu)造函數(shù)后,totalParticipants
?的值會增大。 在?PlayGames
?函數(shù)返回時,由于每個?Cardgame
?實例都超出范圍且被刪除(并且調(diào)用析構(gòu)函數(shù)),因此?totalParticipants
?會減小。 在剛要執(zhí)行?return
?語句前,totalParticipants
?等于 0。文章來源:http://www.zghlxwxcb.cn/news/detail-424743.html -
繼續(xù)逐步執(zhí)行此程序直到其退出,或通過在菜單欄上選擇“調(diào)試”>“運(yùn)行”或選擇 F5 鍵來使其運(yùn)行。文章來源地址http://www.zghlxwxcb.cn/news/detail-424743.html
完結(jié)撒花?。∠缕谠僖?!
到了這里,關(guān)于教你如何使用 Visual Studio IDE 正確的進(jìn)行 C++ 桌面開發(fā)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!