接著上一篇文章[帶你玩轉Visual Studio——開篇介紹](http://blog.csdn.net/luoweifu/article/details/48664887)繼續講這個主題,現在我們從創建一個新的工程開始。
# 一步一步創建項目
1. 依次選擇菜單:File\New\Project,打開New Project對話框。
2. .選擇項目類型:Win32 Console Application;.填寫工程名(Project Name):TestProject(可以給它取一個任意你想要的名字);.選擇該工程存放的路徑:D:\CppWorkspace。?
?
圖 1:New Project
你可能會想問:列表里這么多工程類型,分別代表什么含義啊? 這個問題后面再討論,你先記住這張圖。
1. 點擊Ok,然后點擊Next,會出現這一步?
?
圖 2:Application Settings
2. 我們就采用默認的設置,點擊Finish,工程創建完成。?
(這是工程相關的設置,同樣先不用管它,先記住這張圖,后面再討論)。
* * *
# 工程結構與目錄結構
## 工程結構
?
圖 3:工程結構
創建完成之后,我們會在左側看到這樣一個工程結構。分別說明如下:?
**External Dependencies:**?
工程的外部依賴文件,這個目錄是VS自動生成的,你最好別動它。
**Header Files:**?
頭文件,也就是.h(.hpp)后綴的頭文件。
**Source Files:**?
源文件,也就.cpp(或.c,針對C語言)后綴的文件。
**Header Files:**?
資源文件,如果你創建的是MFC的工程,*.rc文件就會在這里。
### 工程結構的作用:
1. 方便管理,將不同類型或不同用途的文件配制在不同的結構下,方便文件的瀏覽、查找和代碼的管理。
2. 工程結構的目錄與真實文件的目錄不一定相同。
3. 你可以根據文件的不同用途或不同含義,對工程結構重新配置。?
比如我覺得Source Files和Header Files這名太長,你可以選中它按F2,分別把它改重命名成Source和Header。關于工程結構的自定義配置,后續章節的文章還會再提到。
## 目錄結構
?
圖 4:目錄結構
正如上面提到的“工程結構的目錄與真實文件的目錄不一定相同”,我們在文件管理器中打開TestProject所在的目錄,可以看到 *.h 和 *.cpp文件都在同一個目錄下,在我的目錄里也就是位于D:\CppWorkspace\TestProject\TestProject。
* * *
# 寫一個HelloWorld程序
所有計算機語言的學習都從HelloWorld開始,Ok,那我們也從HelloWorld開始寫一個程序吧!在TestProject.cpp文件中寫一個HelloWorld程序如下:
~~~
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World" << endl;
return 0;
}
~~~
編譯:?
右鍵工程名TestProject選擇Build,或者點擊菜單Build\Build Project。
運行:?
內容太簡單,直接運行吧,按Ctrl+F5或點擊菜單Debug\Start Without Debugging。?
?
圖 5:程序運行結果
* * *
# 工程目錄下各文件的含義
一般大部分的文章可能介紹到上面就算結束了,但我這還沒有。創建工程產生的各個文件都你知道是什么用的嗎?
如果你是一個初學者,你可能會不知道(老手請跳過本文)。Ok,我就帶你逐一了解吧。
## 解決方案與工程
在這之前先了解一個概念:解決方案與工程。?
**解決方案(Solution):**一個大型項目的整體的工作環境;?
**工程 (Project):**一個解決方案下的一個子工程;
在VS中,**一個Solution可以有一個或多個Project**。在我們創建一個工程時,如果沒有指定Solution,VS會幫我們創建一個與工程名相同的Solution,這時一個Solution里只有一個Project。所有在我們的TestProject的文件目錄結構中TestProject文件夾下還有一個TestProject文件夾(如圖4),第一個就是整個Solution的目錄,第二個才是Project的目錄。
## 解決方案相關的文件:
**TestProject.sln:**?
整個解決方案(Solution)的配制文件,組織多個工程和相關的元素到一個解決方案中。用鼠標雙擊它就能用VS打開整個工程項目。
**TestProject.sdf:**?
瀏覽相關的數據庫文件,它支持瀏覽和導航的特性。如跳轉到方法、變量的聲明,查找所有對象的所有被引用的地方,類視圖等等。
**TestProject.suo:**?
(solution user opertion) 解決方案用戶選項,記錄所有將與解決方案建立關聯的選項, 以便在每次打開時,它都包含您所做的自定義設置.
**TestProject.opensdf:**?
打開解決方案(Solution)時的臨時文件,這個文件只有你的解決方案在VS打開的狀態才會有,工程一關閉文件就被刪除了。
## 工程相關的文件
**TestProject.vcxproj:**?
記錄工程(Project)相關的屬性配制。
**TestProject.vcxproj.filters:**?
文件過慮器,上圖3“工程結構”中各個文件的組織和編排都是定義在這個文件中的。如果由于某種特殊的原因(如系統或VS突然崩潰)導致你打開工程時文件的組織結構是亂的,100%就是這個文件的原因。
**TestProject.vcxproj.user:**?
用戶相關的一些配制。
上面這些文件中有幾個比較重要的一定不能刪的文件是:?
TestProject.sln、TestProject.vcxproj、TestProject.vcxproj.filters
不要問我是怎樣知道這些文件的作用的,請看官方文檔:?
VS2010定義:[https://msdn.microsoft.com/en-us/library/3awe4781.aspx](https://msdn.microsoft.com/en-us/library/3awe4781.aspx).?
VS2015定義:[https://msdn.microsoft.com/en-us/library/vstudio/hx0cxhaw(v=vs.110).aspx](https://msdn.microsoft.com/en-us/library/vstudio/hx0cxhaw%28v=vs.110%29.aspx)
當然有一些說明是需要經過項目的實踐才能理解的。
* * *
* * *
上一篇回顧:?
[帶你玩轉Visual Studio——開篇介紹](http://blog.csdn.net/luoweifu/article/details/48664887)
下一篇要講述的內容:?
**帶你玩轉Visual Studio——帶你了解VC++各種類型的工程**