如果你不喜歡白底黑字的顏色配置,可以更改vs2010所有的顏色(不僅僅是文本編輯器的背景顏色)。
在VS2010的菜單中的:工具====》擴展管理器===》聯機庫,在其中找到 Visual studio coloer theme editor
然后安裝該庫,這款擴展提供對Visual Studio 2010整個顏色樣式的編輯,它默認提供了8種樣式,我們還可以自定義其顏色樣式。
建議使用一些牛人已經配置好的顏色。去Visual Studio Programmer Themes Gallery 上面有很多配置好的顏色theme,不過這個是vs2005的,不同版本的vs scheme略有不同。
ide設置 http://msdn.microsoft.com/zh-cn/library/zbhkx167(v=vs.90).aspx,上面說:
什么是設置?
設置是對 IDE 進行自定義,包括窗口布局、編輯器默認設置、IntelliSense 代碼段和可用的對話框選項等,可以保存、導出、導入或重置這些自定義設置,以使 IDE 用起來更加得心應手。
活動設置由兩部分組成:一部分是預定義的自定義設置,這類設置來自第一次啟動 Visual Studio 時所選擇安裝的 .vssettings 文件;另一部分是您對 IDE 所做的任何后續自定義設置。默認情況下,活動設置保存在 Currentsettings.vssettings 中
如何:更改選擇設置
更改選擇設置
-
在“工具”菜單上選擇“導入和導出設置”。
-
在“歡迎使用‘導入和導出設置向導’”頁上單擊“導入選定的環境設置”,再單擊“下一步”。
-
在“保存當前設置”頁上選擇“是,保存我的當前設置”,然后單擊“下一步”。
-
在“要導入哪個設置集合”的列表中選擇一個設置集合,然后單擊“下一步”。
-
在“要導入哪些設置”中,展開列表,並僅選擇要應用於當前設置的類別或類別項。
-
單擊“完成”。
在“重置完成”頁的“詳細信息”下列出了與重置設置有關的所有錯誤.不過沒有這些別人寫的scheme,自己可以手動配置。常用的配置;
括號匹配: 凡是括號,鼠標點上去后會變色。改為顯眼一點的顏色。
高亮顯示當前行:突出高亮顯示當前鼠標行,通過工具中字體和顏色選項"當前行(擴展部分)"配置通過改變默認顏色設置
高亮顯示斷點或當前所在的代碼行:菜單:工具》選項》調試》常規,選中“為斷點或當前語句突出顯示整個行源”項。
不喜歡默認的顏色,可以在選項>環境》字體和顏色》選擇斷點(啟用),設置新顏色
Go To Definition:f12,只需把光標放在你想的位置處,不用選中。
visual stduio添加現有文件夾的方法
選擇左側的解決方案,然后點擊菜單【項目】-》顯示所有文件,則會顯示目錄下所有的文件和文件夾。選中它,然后右鍵【包含到項目中】
visual studio 工程目錄,添加文件夾 和添加篩選器 的區別, 請看http://bbs.csdn.net/topics/390838516
看菜單: 項目-->顯示所有文件
勾上,則在解決方案中按目錄顯示,右鍵菜單可以添加文件
不勾上,則在解決方案中按篩選器顯示,右鍵菜單可以添加篩選器
vs篩選器filter
使用vs2010開發項目時,有時源碼文件過多,想按功能進行分類管理,這個時候就可以使用“篩選器(filter)”。
添加篩選器很簡單,在項目上右鍵單擊,選擇“添加 | 新建篩選器”,然后命名就可以了。之后向篩選器中添加文件。創建篩選器之后,要注意工程目錄下的“*.filters”文件一定不能刪掉,因為這個文件就是用來記錄篩選器的。
還有一個問題就是,有時候不但希望在vs2010 IDE里面,分類管理文件。還希望這些源碼文件在實際的物理存儲上,也按照篩選器同樣的文件夾層次進行存放。這樣也可以,比如在工程目錄下新建一個DirectShow文件夾,然后按層次創建其子文件夾。不同功能的源碼依據功能分別放在不同的子文件夾里面。然后按照實際文件夾的目錄層次,一級一級創建篩選器,最后在每一級篩選器中添加相應的文件即可。
這樣有一個問題就是頭文件包含麻煩了,可能某個文件需要include的頭文件,在另一個子文件夾里面。這個時候就需要在include的時候,使用“..\(上級目錄)Utilities\CMsgStation.h”、“.\(當前目錄)DirectShow\Device\CVideoDevices.h”等等。這樣比較麻煩,有一個解決方法就是添加工程的“包含(include)目錄”,比如設置為:$(ProjectDir)XXX,其中$(ProjectDir)是vc編譯器的預定義宏,代表當前工程目錄。這樣include XXX目錄下的頭文件yyy.h時,就可以直接include “yyy.h”了。
vs修改輸出目錄后遇到的問題:
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(989,5): warning MSB8012: TargetPath(C:\MyProj\Release\MyProj.dll) does not match the Linker's OutputFile property value (). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). 2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetExt(.dll) does not match the Linker's OutputFile property value (). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). 2>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(991,5): warning MSB8012: TargetName(MyProj) does not match the Linker's OutputFile property value (). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). 這可能導致項目生成不正確。若要更正此問題,請確保 $(OutDir)、$(TargetName) 和 $(TargetExt) 屬性值與 %(Link.OutputFile) 中指定的值匹配
相關資料:
一、VS2010編譯器中常見的環境變量有:
$(OutDir)、$(TargetName) 、 $(TargetExt)、$(ProjectName)、$(TargetFileName)
二、環境變量含義:
解決方案目錄:$(SolutionDir)即為*.sln文件所在文件夾,尾帶 ‘/’
工程目錄:$(ProjectDir) 即 為*.vcproj文件所在文件夾,尾帶 ‘/’
輸出目錄(OutDir): $(ProjectDir)$(PlatformName)/$(ConfigurationName)
中間目錄(IntDir): $(OutDir)/Intermediate
輸出文件:$(OutDir)/$(ProjectName).exe
平台名稱:$(PlatformName) 一般是Win32,除非你的工程選項選的是"Itanium"或者"Pocket PC 2003 (ARMV4)"
解決方案配置名稱:$(ConfigurationName) 一般是Debug或者Release,$(PlatformName)\$(ConfigurationName)的一個示范是等於“Win32\Debug”
三、其它
編譯事件支持的命令:
copy/del/xcopy...
如:copy "$(OutDir)$(TargetName)$(TargetExt)" "e:\"
默認輸出文件:$(OutDir)$(TargetName)$(TargetExt),默認等於$(TargetPath)。
vs2013新建項目默認屬性:
默認輸出目錄;
$(SolutionDir)$(Configuration) $(Configuration)為debug或release。
連接器常規-》輸出:$(OutDir)$(TargetName)$(TargetExt)
這里的連接器輸出實際上是最終的exe輸出位置。如果配置和常規里面的輸出目錄配置不協調,會輸出:
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(1186,5): warning MSB8012: TargetPath(F:\vsproject\duilibLearn\Debug\duiLogin.exe) does not match the Linker's OutputFile property value (F:\vsproject\duilibLearn\duiLogin.exe). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
1> duiLogin.vcxproj -> F:\vsproject\duilibLearn\Debug\duiLogin.exe
。
涉及到的配置: 項目編譯時使用的中間目錄; 項目鏈接的輸出目錄; 項目編譯結束后,拷貝生成的 dll 和 lib 到指定目錄; 項目編譯結束后,拷貝需要的 dll 到輸出目錄; 設置項目的工作目錄; 設置調試時執行的 exe 和工作目錄; 配置時使用到的一些宏: ConfigurationName 配置名字,通常是Debug或者Release IntDir 編譯器使用的中間目錄,產出obj文件 OutDir 鏈接器使用的輸出目錄 ProjectDir 項目目錄 ProjectName 項目名字 SolutionDir 解決方案目錄 TargetDir 目標輸出文件所在的目錄 TargetExt 目標輸出的擴展名 TargetFileName 目標輸出文件名,包括擴展名 TargetName 目標輸出名,不包括擴展名 TargetPath 目標輸出文件的全路徑名 下面以 Sticker 為例展示目錄結構設置的過程: Sticker 目錄結構: Sticker +-- 3rd (第三方庫) | +-- dll | | +-- debug | | +-- release | +-- lib | | +-- debug | | +-- release | +-- include | +-- src (源碼) | +-- Sticker | | +-- Sticker 項目的代碼 | +-- StickerLibrary | | +-- StickerLibrary 項目的代碼 | +-- Sticker.sln | +-- xar (腳本) | +-- Sticker | +-- ... | +-- doc (文檔) | +-- bin (可執行文件) | +-- debug | +-- release | +-- temp (中間目錄) +-- compile | +-- debug | +-- release +-- link +-- debug +-- release 1. 創建文件夾 Sticker\src 2. 創建一個空的解決方案 Sticker.sln ,放入 Sticker\src 中 3. 創建項目 Sticker 4. 屬性 --> 配置 設定為“所有配置”,這樣可以同時設定 debug\release 下的配置 5. 配置屬性 --> 常規 --> 中間目錄: $(SolutionDir)..\temp\compile\$(ConfigurationName) 6. 配置屬性 --> 常規 --> 輸出目錄: $(SolutionDir)..\temp\link\$(ConfigurationName) 7. 配置屬性 --> C/C++ --> 常規 --> 附加包含目錄: "$(SolutionDir)..\3rd\include" 8. 配置屬性 --> 鏈接器 --> 常規 --> 附加庫目錄: "$(SolutionDir)..\3rd\lib\$(ConfigurationName)" 9. 配置屬性 --> 鏈接器 --> 輸入 --> 附加依賴項: xxx1.lib xxx2.lib xxx3.lib 10. 配置屬性 --> 生成事件 --> 生成后事件 --> 命令行: md $(SolutionDir)..\bin\$(ConfigurationName) copy $(TargetPath) $(SolutionDir)..\bin\$(ConfigurationName) copy $(SolutionDir)..\3rd\dll\$(ConfigurationName) $(SolutionDir)..\bin\$(ConfigurationName) 11. 配置屬性 --> 調試 --> 命令: $(SolutionDir)..\bin\$(ConfigurationName)\$(TargetFileName) 12. 配置屬性 --> 調試 --> 工作目錄: $(SolutionDir)..\bin\$(ConfigurationName)\
問題:如果編譯成功,但提示無法啟動程序,前提是修改了輸出文件的目錄。
解決方案::項目->屬性,將 “配置屬性” 下的 “調試” 中的 ”命令“ 的值改為和 ”鏈接器“ 中 ”輸出文件的值“。
一篇文章:
項目配置及系統變量關系:
在vs2010的項目屬性頁,會有一些系統變量,如下:
SolutionDir:解決方案目錄
Configuration:指debug或release
ProjectName:項目名字
IntDir:中間目錄
TargetDir:生成exe或dll文件所在位置,如鏈接器-常規-輸出文件為$(OutDir)$(TargetName)$(TargetExt)(即定義了exe輸出位置,也就決定了TargetDit的值),此時TargetDir表示在XXX\lolution\debug\
TargetName:目標輸出名,不包括擴展名
TargetPath:目標輸出文件的全路徑名
ProjectDir:表示項目目錄值,一般在“調試-工作目錄”中設置該值
TargetExt:擴展名
PlatformToolsetVersion:
ConfigurationName:配置名字,通常是Debug或者Release
默認情況下“輸出目錄”和“輸出文件”對應的目錄值是一樣的。
配置屬性
常規
輸出目錄:$(SolutionDir)$(Configuration)\
中間目錄:$(Configuration)\
目標文件名:$(ProjectName)
目標文件擴展名:.exe
生成日志文件:$(IntDir)\$(MSBuildProjectName).log
調試
命令:$(TargetPath),表示調試器要啟動的exe全名,TargetPath就表示目標輸出文件的全路徑名,所以一般情況下它代表的值就等於“輸出文件”屬性代表的值
工作目錄:$(ProjectDir)
C/C++
預編譯頭
預編譯頭輸出文件:$(IntDir)$(TargetName).pch
輸出文件
ASM列表位置:$(IntDir)
對象文件名:$(IntDir)
程序數據庫文件名:$(IntDir)vc$(PlatformToolsetVersion).pdb
瀏覽信息
瀏覽信息文件:$(IntDir)
鏈接器
常規
輸出文件:$(OutDir)$(TargetName)$(TargetExt)
清單文件
清單文件:$(IntDir)$(TargetName)$(TargetExt).intermediate.manifest
調試
生成程序數據庫文件:$(TargetDir)$(TargetName).pdb
優化:
按配置優化數據庫:$(TargetDir)$(TargetName).pgd
關於vs輸出目錄,參考:
http://www.mamicode.com/info-detail-507829.html
vs2010項目屬性配置
vs2013新建文件自動保存為utf-8編碼
http://jingyan.baidu.com/article/b907e627b68cb646e7891c28.html
在vs2013中設置全局的include和lib方法
在vs2008時設置include和lib都是全局的,也就是說對於每個項目不管是新建的還是以前的,都是公共的,但是在vs2010之后,對於一些全局的include和lib就需要對每個項目來進行設置,太麻煩了,因此這里就說一下在vs2010以及vs2013及以上設置全局的include和lib。
1、首先新建一個IncludeLib項目,然后打開屬性管理器,(注意:默認情況下屬性管理器是不顯示的,要通過視圖->其他窗口->屬性管理器,如下圖1所示),然后就會在解決方案里出現屬性管理器,如下圖2所示:
---------------------
2、展開IncludeLib項目,然后出現有一個Debug和Release,分別展開其中有Microsoft.Cpp.Win32.user,如下圖所示.
3、雙擊Debug中的,然后在彈出的對話框中選擇VC++目錄,設置包含目錄和庫目錄,對應的就是Include和Lib,如下圖所示:
4、以上是設置Debug,那么用同樣方法可設置Release即可,以后不管是新建的還是舊的項目,默認打開都會被包含。