如果你不喜欢白底黑字的颜色配置,可以更改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即可,以后不管是新建的还是旧的项目,默认打开都会被包含。