vcproj是一個標準的xml檔案。因此以下就以節點順序描述。後面的Scc**屬性,標誌了此工程在SourceSafe中。手動將一個工程從SourceSafe中刪除時,只要刪除這四個屬性就行。當它們的默認值是SKA時,可以在工程檔案的同一個目錄下找到一個檔案mssccprj.scc,這裡面包含了工程在SourceSafe中的信息,
基本介紹
- 中文名:vcproj
- 包含:工程在SourceSafe
- 刪除:四個屬性
- 默認值:SKA
詞條介紹,常用屬性,
詞條介紹
根節點是VisualStudioProject,屬性中包含了工程的全局信息,常見的信息有:
屬性 | 含義 | 說明 |
ProjectType | 工程類型 | 默認值是Visual C++ |
Version | 版本 | 默認值是7.10 |
Name | 工程名稱 | |
ProjectGUID | 工程的GUID | |
Keyword | 工程關鍵字 | 默認值是Win32Proj |
SccProjectName SccAuxPath SccLocalPath SccProvider | SourceSafe信息 | 默認值是SAK |
後面的Scc**屬性,標誌了此工程在SourceSafe中。手動將一個工程從SourceSafe中刪除時,只要刪除這四個屬性就行。當它們的默認值是SAK時,可以在工程檔案的同一個目錄下找到一個檔案mssccprj.scc,這裡面包含了工程在SourceSafe中的信息,比如:
SCC = This is a Source Code Control file [PS.vcproj] SCC_Aux_Path = "\\code-server\code$\" SCC_Project_Name = "$/project/PS", IQIBAAAA |
根節點下有三個子節點比較重要。Platforms很簡單,表示平台內容,通常就是“Win32”;Configurations是編譯和連結的配置信息;Files下包括的是工程中的檔案信息。以下主要談談Configurations和Files。
Configurations包含了工程編譯和連結等配置信息,其子節點是Configuration,由用戶設定的編譯類型決定,默認有Debug和Release兩個子節點。Configuration的屬性如下:
屬性 | 含義 | 說明 |
Name | 編譯選項名稱 | Debug下通常為Debug|Win32 |
OutputDirectory | 目標檔案輸出路徑 | 默認為Debug |
IntermediateDirectory | 編譯信息輸出路徑 | 默認為Debug |
ConfigurationType | 工程類型 | 1表示exe程式檔案,2表示dll動態庫檔案,3表示lib靜態庫檔案 |
UseOfMFC | 表示是否使用MFC | 0表示不使用MFC,1表示靜態連結MFC,2表示動態連結MFC |
CharacterSet | 表示編碼類型 | 1表示Unicode,2表示Ansi |
Configuration的子節點全是Tool,每個子節點都有一個屬性Name表示節點含義。這裡面有兩個子節點比較有用,一個是VCCLCompilerTool,表示編譯信息,一個是VCLinkerTool,表示連結信息,其它的子節點用的不多。
常用屬性
屬性 | 含義 | 說明 |
Optimization | 最佳化選項 | 可以為0、1、2、3、4 |
PreprocessorDefinitions | 預定義標記 | 通常都是WIN32 _WINDOWS _DEBUG |
MinimalRebuild | 是否使用最小編譯 | 設定為TRUE能節約編譯時間 |
BasicRuntimeChecks | 運行時檢測,包括棧和未初始化變數等 | 默認為3 |
RuntimeLibrary | 程式運行時 | 選擇多(單)執行緒,(非)調試,DLL(EXE)類型 |
TreatWChar_tAsBuiltInType | 是否將wchar_t當作內置類型 | 如果為FALSE,wchar_t被認為是unsigned short類型 |
ForceConformanceInForLoopScope | if和for循環中聲明的變數的作用範圍是否在循環內 | 7.1默認為FALSE,8.0默認為TRUE |
UsePrecompiledHeader | 預定義頭檔案設定 | 0表示不使用,1表示創建預定義頭檔案,2表示自動創建,3表示使用預定義頭檔案 |
PrecompiledHeaderThrough | 預定義頭檔案名稱 | 通常都是stdafx.h,可以隨意指定 |
PrecompiledHeaderFile | 預編譯信息檔案名稱 | 默認為$(IntDir)/$(TargetName).pch |
WarningLevel | 警告級別 | 4 |
Detect64BitPortabilityProblems | 檢測是否兼容64位程式 | FALSE |
DebugInformationFormat | 調試信息格式 | Debug下通常設定為4,Release下可以設定為3 |
屬性 | 含義 | 說明 |
AdditionalDependencies | 依賴lib檔案 | |
OutputFile | 輸出的目標檔案 | 默認$(OutDir)/$(ProjectName).exe |
LinkIncremental | 增量編譯 | 2 |
AdditionalLibraryDirectories | 依賴lib的位置 | |
GenerateDebugInformation | 是否生成調試信息 | 通常都為TRUE |
ProgramDatabaseFile | 調試信息檔案名稱稱 | $(IntDir)/$(ProjectName).pdb |
SubSystem | 子系統 | 1為控制台,2為Windows程式 |
ImportLibrary | 導入的lib檔案 | 默認$(IntDir)/$(ProjectName).lib |
Files下包括的是工程中的檔案信息,由Filter和File組成,Filter表示目錄,File表示檔案。每個cpp還可以包含一個子節點FileConfiguration,這個子節點表示此cpp檔案編譯時與全局編譯選項不一致的內容,通常情況下除了預編譯頭檔案外這不是必須的,預編譯頭則必須指定它的UsePrecompiledHeader信息為1,也就是由它來創建預定義頭檔案。