社区应用 最新帖子 精华区 社区服务 会员列表 统计排行 银行

  • 28661阅读
  • 17回复

Visual Studio2008使用技巧和快捷键(VS2008,VS2010)

级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 10楼 发表于: 2012-04-10
VS2008 解决方案的目录结构设置和管理
解决方案与项目:
从 VC6 之后 VC 系列就使用解决方案( Solution )来替代原来的工作空间,用于组织和管理多个相关的项目( Project )。
文章首先演示一个虚拟的解决方案和我们期望得到的目录结构,然后使用VC2008的项目设置功能来一步一步达到我们的需求。
虚拟解决方案:
该虚拟解决方案名为GMA,包含一个动态链接库项目ChocolateMilk和一个应用程序项目PureMilk,需要使用一个第三方库log4cxx(Apache log4j的C++移植版本,用于日志输出)。
log4cxx是以动态库的方式编译的,所以我们需要它的3样东西,分别是头文件,导入库(log4cxx.lib, log4cxxd.lib)和动态链接库(log4cxx.dll)。
假设我们期望的目录结构如下图:


1. GMA是解决方案目录
2. PureMilk和ChocolateMilk是项目目录
3. Lib目录用于存放导入库或者静态库(包括第三方库和自己的项目)
4. Include用于存放第三方库的头文件
5. Bin目录存放所有动态链接库和执行档,包括自己的产出和第三方库,区分Release和Debug两个版本。另外,程序运行过程中需要外部的数据文件和启动时需要的配置文件等等都可放于该目录
6. Temp用于存放临时生成文件,其中Compile存放编译器编译时生成的obj文件,Link存放链接器的输出文件。
上面目录结构清晰,一面了然,当我们的程序需要制作安装包或者要打包源码
发布的时候,它能够使得我们生活变得更容易^_^
制作安装包时我们只需将“/GMA/Bin/Release/”目录下的所有文件打包。
发布和转移源码的时候我们可以打包除了Temp目录以外“/GMA/”下面的所有文件和目录(如果不需要执行档,也可不包括Bin)。
我们的需求是明确的,可是VC 2008并不会自动为我们做好上面所有的事情。不过我们并不需要编写复杂的编译脚本(makefile),只需要简单的修改项目的缺省设置即可。
我们需要 VC 为我们做的事情包括:
1.使用“/GMA/Temp/Compile/”作为项目编译时使用的中间目录
2.使用“/GMA/Temp/Link/”作为项目链接的输出目录
3.当项目是应用程序时,在构建结束后拷贝执行文件到“/GMA/Bin/Release/”或“/GMA/Bin/Debug/”,当项目是动态链接库时,除了拷贝dll到Bin,还拷贝导入库到“/GMA/Lib/”
4.当项目是应用程序时,调试时运行“/GMA/Bin/Debug/”或“/GMA/Bin/Release/”下面的执行文件,并以“/GMA/Bin/Debug/”或“/GMA/Bin/Release/”为工作目录
首先看一下项目设置中可以使用的宏,常用的有:
ConfigurationName
配置名字,通常是Debug或者Release
IntDir
编译器使用的中间目录,产出obj文件
OutDir
链接器使用的输出目录
ProjectDir
项目目录
ProjectName
项目名字
SolutionDir
解决方案目录
TargetDir
目标输出文件所在的目录
TargetExt
目标输出的扩展名
TargetFileName
目标输出文件名,包括扩展名
TargetName
目标输出名,不包括扩展名
TargetPath
目标输出文件的全路径名


首先来设置 ChocolateMilk :
1.使用“/GMA/Temp/Compile/”作为项目编译时使用的中间目录
2.使用“/GMA/Temp/Link/”作为项目链接的输出目录


注意高亮的部分,首先将配置改成All Configuration(全部配置),这样可以让我们同时修改Debug和Release的部分;
Output Directory(输出目录,链接器)栏位填入:
$(SolutionDir)\Temp\Link\$(ProjectName)\$(ConfigurationName)
Intermediate Directory(中间目录,编译器)栏位填入:
$(SolutionDir)\Temp\Compile\$(ProjectName)\$(ConfigurationName)
3.构建结束后拷贝动态链接库到“/GMA/Bin/Release/”或“/GMA/Bin/Debug/”,拷贝导入库到“/GMA/Lib/”
我们通常都会在Debug版本的输出库后面加上字母“d”以表示这是Debug版本,在Debug配置下,修改Import Library栏位:


VC可以让我们设置构建前后执行的脚本程序,所以为了完成3,
我们需要写构建后执行的脚本:


在Command Line中填入,Debug配置下:
copy $(TargetPath) $(SolutionDir)\Bin\$(ConfigurationName)\;
copy $(TargetDir)$(TargetName)d.lib $(SolutionDir)\Lib\;
Release配置下:
copy $(TargetPath) $(SolutionDir)\Bin\$(ConfigurationName)\;
copy $(TargetDir)$(TargetName).lib $(SolutionDir)\Lib\;
之所以要分别设置是因为VC没有表示导入库的宏名字 -_-P
OK,到此为止,你就可以编译ChocolateMilk项目试试是不是一切正常了,不过请确认拷贝的目标目录事先建立好。
接下来我们设置应用程序项目 PureMilk :
1.使用“/GMA/Temp/Compile/”作为项目编译时使用的中间目录
2.使用“/GMA/Temp/Link/”作为项目链接的输出目录
首先将配置改成All Configuration(全部配置),这样可以让我们同时修改Debug和Release的部分;
Output Directory(输出目录,链接器)栏位填入:
$(SolutionDir)\Temp\Link\$(ProjectName)\$(ConfigurationName)
Intermediate Directory(中间目录,编译器)栏位填入:
$(SolutionDir)\Temp\Compile\$(ProjectName)\$(ConfigurationName)
3.构建结束后拷贝执行文件到“/GMA/Bin/Release/”或“/GMA/Bin/Debug/”
在Command Line中填入,All配置下:
copy $(TargetPath) $(SolutionDir)\Bin\$(ConfigurationName);
4.调试时运行“/GMA/Bin/Debug/”或“/GMA/Bin/Release/”下面的执行文件,并以“/GMA/Bin/Debug/”或“/GMA/Bin/Release/”为工作目录


Command栏位填入:$(SolutionDir)\Bin\$(ConfigurationName)\$(TargetFileName)
Working Directory栏位填入:$(SolutionDir)\Bin\$(ConfigurationName)\
这样就大功告成了,现在你就可以编译该执行程序并进行调试。
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 11楼 发表于: 2012-05-04
解决Resource Compiler Fatal Error RC1107 invalid usage; use RC /? for Help
问题:一周前还好好的VS2005MFC工程,突然无法打开资源编辑页面了。在Resource View中,一点.rc,就会弹出错误fatal error rc1107。

解决:Tools->Options->Project and Solutions->VC++ Directories,把所有directories结尾的“/”都去掉。

听起来很匪夷所思,但我的确就是这样解决的。回想起来,这一周间做的不太平常的事情,的确只有在directories里面添加了一些自己的路径。
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 12楼 发表于: 2012-05-23
10个免费的C/C++ 集成开发环境
集成开发环境(IDE)可以给程序员提供很大的帮助。大多数的IDE包含编译器和解释器。例如微软的 Visual Studio 本身内置的编译器和解释就是很好的例子,Eclipse 是另一个很好的例子。


鼓励程序员使用IDE的主要原因是开发软件应用程序的各个组成部分之间可方便的进行切换。一般一个特定的IDE是负责处理一种编程语言,但也有一些支持多种编程语言的 IDE,例如 NetBeans,Microsoft Visual Studio,MyEclipse,WinDev和Xcode等等。


IDE 的宗旨是提供了一个强大和易于使用的用于创作,修改,编译,部署,调试软件,并增加开发人员的生产力的环境。


今天,我们将为程序员分享一些最好的C和C++的免费IDE。


1) Codeblocks
Code::Blocks (codeblocks)是一个开源、免费、跨平台的c++ IDE。官方网站上称其能满足最苛刻的用户的需求。虽有点夸张,但既然敢这样说,也说明它的功能肯定不差。可扩展插件,有插件向导功能,让你很方便的创建 自己的插件。Code::Blocks是用c++编写的(用wxWidgets库),捆绑了MinGW编译器。






2) kDevelop
KDevelop-Project诞生于1998年,其目的是为KDE提供一个易用的集成开发环境(Integrated Development Environment)。此后,KDevelop IDE采用GPL进行发布, 它支持很多 程序设计语言.






3) Pellesc
Pelles C是一款windows下的C IDE,支持调试,且为免费。
它有一个高效率的链接器,目前已被广泛采用为各种语言的后台链接器使用LCC作为编译器
并且完整支持win32编程,支持任何API调用,包含所有winAPI的库且含有完整 C Runtime Library。






4) Anjuta
Anjuta是一个C/C++ IDE,它最大的特色是灵活,同时打开多个文件,内嵌代码级的调试器(调用gdb),应用程序向导(Application widzards)可以方便的帮助你创建GNOME程序而不需要你自己写一些与你兴趣无关的代码。






5) Bloodshed
Dev-C++是一个Windows下的C和C++程序的集成开发环境。它使用MingW32/GCC编 译器,遵循C/C++标准。开发环境包括多页面窗 口、工程编辑器以及调试器等,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序,提供高亮度语法显示的,以减少编辑错误,还有完善的调试功能,能 够适合初学者与编程高手的不同需求,是学习C或C++的首选开发工具!多国语言版中包含简繁体中文语言界面及技巧提示,还有英语、俄语、法语、德语、意大 利语等二十多个国家和地区语言提供选择。






6) Eclipse CDT
Eclipse CDT 是 Eclipse 插件,它将把 Eclipse 转换为功能强大的 C/C++ IDE。它被设计为将 Java 开发人员喜爱的许多 Eclipse 优秀功能提供给 C/C++ 开发人员,例如项目管理、集成调试、类向导、自动构建、语法着色和代码完成。当 Eclipse 被用作 Java IDE 时,它将利用 JDK 并与之集成。同样地,CDT 将利用标准的 C/C++ 工具并与之集成,例如 g++、make 和 GDB。这使得 CDT 在 Linux 中变得非常流行,这些工具都可在 Linux 中使用并用于大多数 C++ 开发。可以在 Windows 上设置 CDT 以使用相同的工具。




7) Visual Mingw
Visual-MinGW 是一个专门为MinGW所设计的IDE。如果,你曾经用过VC++ 6.0这个IDE,你的第一感觉就是,Visual-MinGW和VC++ 6.0非常相似。所以,对于曾经用惯VC的朋友们来说,Visual-MinGW不失是一个好的选择。然而,Visual-MinGW的开发与更新似乎并 不积极。因此,还有不足的地方。Visual-MinGW的理念是提供一个高效的,快速的创建代码的IDE。






8) Ecere
eCere,一门“新”的编程语言,以下简称为“eC”。


eC,是一位加拿大人jerome历时十二年开发的一门编译型编程语言,拥有C++项目的性能、Java的跨平台性以及Python语法的简洁性。 不似Object C、C++和C#,eC更像是一个C语言的Shell,他将程序员与C之间的复杂性隔离开来,还有就是他在跨平台支持方面要更优越一些。eC不仅给传统的 C语言引入了完整的OO编程实现,其真正强大之处在于作者目前所实现的C库,包括一个内建的3D引擎实现(支持Direct3D和 OpenGL)和一套接近于VB的GUI库实现以及对网络编程的支持。






9) Relo
Relo是一个帮助开发人员研究大型代码库的好工具,它能够一步步的跟踪你所展开的代码包,并快速生成类似UML的类图。






10) Ultimate++
U++是一个开源的跨平台C++ RAD平台,作者从98年就开始开发,到今年持续了十一年了。U++一直都是一个非常非常小众的开发平台,几乎没什么人用,与当今火红的几个开源C++ Framewrok比如wxwidgets, QT等相比,它实在是被人冷落的可以。换做旁人早就歇菜了,在SourceForge上搜一下,能搜出一堆半路夭折的C++Framework。而U++ 却仍在不断的开发中,可算是特立独行。
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 13楼 发表于: 2012-11-19
vs2008 条件断点
条件成立触发断点

先设置一个普通断点。断下来的时候再设置它的条件。如下图:

在Breakpoints窗口中找到这个断点,右键选择Condition…如下图:

输入条件,这样就会在这个条件成立的时候,才触发断点。

内存改变时触发断点
有时候想知道一个指针什么时候被改变了。可以用这种方法。
先在指针处断下来。如下图:

然后在watch窗口查看 【指针变量本身存放的内存地址】。如下图第二个即:&g_p。注意不是g_p。

复制这个地址,然后的Breakpoints窗口中打开New->New Data Breakpoint如下图:

把这个地址写上,如下图:

这样再运行,当指针改变的时候,就会触发断点了。如下图:


方煜宽
2011.07.13
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 14楼 发表于: 2012-12-24
VC2008中影响exe大小和速度的全部编译选项
我再次强调,完全脱离编程环境的C/C++学习方法,不是好的方法,现在所谓的环境中立理论就是“什么都不学”理论,VC、GCC,主流的就两个,精通其中一个就能吃遍天下,教材里就应该选择一个大讲特讲!

    作为VC的代表,今天我给大家全面介绍VC中的编译器选项,全面介绍不需要,MSDN里从头到尾都介绍完了,今天我只讲对生成的exe文件大小和速度有影响的。

    用VC就得用IDE,我也以IDE的工程设置里面的排列顺序介绍,某些选项需要自己手动添加的最后介绍,我后面说的默认值是release的,debug版本一般不需要调选项。

项目 - 属性 - 配置属性 - C/C++,这是编译器选项。

优化:
     通常,算法程序选择最大化速度(/O2),界面程序选择最小化大小(/O1),可以获得最佳的效果。
    优选大小或速度,只有在使用完全优化(/Ox)时才有效,完全优化一般不推荐使用,用处就是可以生成速度与/O2基本相当,但是体积更小的代码(选速度优先的话)。

    其他几个选项实际上已包含在/O1、/O2之中,具体请看MSDN。

代码生成:
    启用字符串池(/GF),会将相同的字符串合并,当然可以减小空间占用,虽然本项目默认没有打开,但是默认的/Zi选项会自动打开/GF,这里打不打开一样。
    启用C++异常:该项默认打开,在C++项目中(比如MFC中),会大大增加程序体积,增加约30%,关闭并不代表try不能用了,但会一定程度上降低健壮性,对于空间要求较高的程序,建议关闭。对于正式项目,请参见MSDN,看看会不会造成不利影响。
    运行库:默认多线程DLL(/MD),体积最优的方案,如果对方没有VS运行时库,选择/MT会将C/C++运行库静态编译,体积增加不少,因此,我的选择一般是程序与redist包一起发布,也就几M,而且以后永远可以接受/MD版本了。
    缓冲区安全检查:关闭的话,减少0.5K~1K体积(默认情况,VC的段长度512字节,因此程序体积变化的最小单位是0.5K)。
    启用增强指令集:真想用SSE3的话去用Intel C++,VS2008只支持到SSE2,而且,在我的机器上貌似使用默认设置就能达到选择SSE2的相同速度,如果安装了Intel C++ 11,可集成与VS2008,同样的地方选择SSE3效果超群
    浮点模型:精确还是快速理论上肯定对速度有影响,但是我极少使用浮点编程,我的方向是系统、安全和密码,都是整数的天下。

高级:
    编译为C还是C++影响不大,这充分说明了C++简单面向对象特性和C效率差不多(如重载,默认情况下,编译器会检查扩展名决定目标代码类型,对于cpp文件,所有的函数都会编译为可重载的类型,但是对效率几乎没有影响)。

项目 - 属性 - 配置属性 - 链接器,这是链接器选项。

输入:
    忽略库只有在库冲突时候才有用,VC绝对不会连接没有调用到的库,哪怕你明确指定了。

清单文件:
    完全使用API编程可以不生成清单。减少约1K体积。
    一般情况下,关闭UAC的那一项,可减少0.5K。

调试:
    关闭“生成调试信息(/DEBUG)”,根据程序规模,可减少1K~几十K。

优化:
    release模式,默认情况下已经该组已经最优了,/OPT:REF和/OPT:ICF已经打开,注意,VS2005、VS2008中Windows 98优化那一项没用,不像VC6取消Windows 98优化可以大大减小体积。因为VS2005、VS2008中段大小已经是512字节,VC6默认4K。

高级:
    指定入口点,可以大大减小程序体积,但是不调用CRT的入口无法自动处理参数,可用GetCommandLine和CommandLineToArgvW这两个API来处理参数。
    随机基址:默认模式启用映像随机化(/DYNAMICBASE),会大大增加程序体积,因为这是个增加程序防反编译、防破解能力的选项。如无需求,请选择禁用映像随机化(/DYNAMICBASE:NO),文件越大,体积缩小越明显,至少30%

命令行:
    小程序,可以指定段大小/ALIGN,/O1编译的化最小可以使用/ALIGN:4,这个选项不推荐,第一有点规模的程序就不能用太小的段,/O2优化的也不能用小段,而且默认的512字节段可以使用UPX压缩,再小就不能了,除非咱们编译那种600字节的Hello World,这个选项意义不大,因此微软才没有给他一个图形选项。
    同样,编译600字节hello world还需要/merge合并段选项,同样不推荐使用。

    有些选项VS2005和VS2003没有,VS2003还包括几个VS2008废除的选项,实际上VC里面程序优化效率最高的个人感觉是VS2003。VC6的界面差别比较大,选项有一定差异,但毕竟都是微软的产品,差别不大,甚至于MASM这个汇编编译器,连接选项大都与VC相同……

    再说一点,VS2008SP1的MFC工程会自动生成巨大的256*256真彩图标,因此默认的MFC对话框程序都有近100K,建议删除多余的图标,配合上述选项能减到10多K
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 15楼 发表于: 2013-09-07
Visual Studio 技巧:在代码间自由穿梭
引子:

当你在浏览代码时,看到了一个陌生的函数或者自定义类型,你使用转到定义查看该函数或者类型,然后再也找不回跳转过来的地方了。
你想要返回跳转过来的地方。
解决方法:
技巧:返回之前跳转的位置
使用快捷键 Ctrl+-,可以跳回到之前光标的所在位置。
使用快捷键 Ctrl+Shift+-,撤销上面的跳转。
使用( Ctrl+-)跳回去之后,如果想在返回,可用(Ctrl+Shift+-)撤销跳转

其他一些提高效率的代码浏览快捷键:
1.页面导航
PageUp 当前页面上翻一页
PageDn 当前页面下翻一页
Ctrl+数字 切换代码标签页
Ctrl+方向键 滚动屏幕
Ctrl+G 跳转的制定行
F6 转到定义
2.光标移动:
Ctrl+] 匹配括号
将光标移动到行首:Home
将光标移动到行末:End
Ctrl+PageUp 光标移动到当前页面顶部
Ctrl+PageDn 光标移动到当前页面底部
Ctrl+Shifit+PageUp 光标从当前位置移动到页面顶部并选中之间的内容
Ctrl+Shifit+PageDw 光标从当前位置移动到页面底部并选中之间的内容
3.临时调整字体大小
调大一号 ctrl+鼠标滚轮上滚
调小一号 ctrl+鼠标滚轮下滚

QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 16楼 发表于: 2014-02-26
Visual Studio 八个调试建议
Visual Studio内置有如此之多有用的调试特性,但并非众所周知。本文列举一些我的最爱,包括最近我在?VS2013?中发现的调试特性。


1.在Lambda表达式中的断点


如果你点击左边栏设置断点,你可能很容易被误导认为断点发生在行级别上。实际上,你可以在行内部插入断点,如在你的LINQ的Lamdba表达式中。仅需右击代码部分并且从菜单选择Breakpoint > Insert breakpoint。


2.便捷的输出窗口


输出窗口对调试很有用,同样断点也是弹出式或中断程序的,但它确实很嘈杂。仅需右击输出窗口(要确保输出被设为调试),关闭Module Load,Module Unload,Process Exit 和Thread Exit 以只输出你关心的内容。现在用Debug.WriteLine给出你真正关心的内容吧。


2171


你也可以在输出窗口使用Ctrl-S保存设置。


3.在客户端和服务器端附加调试(VS2012)


服务器端和客户端工程在一个solution中是有用的,你仅需要一份Visual Studio运行时拷贝而且也不会在alt-tab键的前进后退中迷失,特别是当它们使用共同的代码如数据结构工程。


有一个缺点,start-up工程是唯一获得附加调试的工程。如果你遇到异常,它会显示在你的客户端,而不是服务端。


现在这个问题很容易解决了。右击solution,选择properties > Multiple startup projects,然后选择Start动作为你需要附加调试的工程。


2172





4.创建可重建工程模板


如果你负责SDK或者API,创建一个你独用的简单的应用程序。然后使用File > Export template保存它。


现在你随时可以从你的模板创建一个新的工程,仅需要一些点击。更好的做法是使得用户和测试者能够使用它们,以便他们给你最小的重建。


5.使用DebuggerDisplay属性


调试器默认会使用ToString()来监视并在窗口正常输出类名。即使你重写ToString,对其他调试者也不见得一目了然。


在你的类中通过一句简单的表达式,而不是改变属性值来使用DebuggerDisplay。例如:


1
[DebuggerDisplay("Order {ID,nq}")
2
class Order {
3
    public string ID { get { return id; } }
4
}
“nq”阻止了双引号发散。你也可以在这里使用方法,但是别做任何可能带来微小副作用的事,否则你观察的对象可能改变其行为,并导致奇怪的事发生。


6.管理断点


你创建了一些带劲的断点,现在你要关闭其中的一个,因为它被点击了太多次,但你马上又要再次用到它。如果你删除了这个断点,你就不得不回来再找到断点位置。


打开常被忽视的Breakpoints窗口(Ctrl-Alt-B)。这个窗口显示了你设置的所有的断点但关键的是允许你使它们无效仅仅通过去除check标记。再次check上以重新使它有效。


2173


这个窗口同样提供了快速调试的功能:


条件 断点什么时候发生
发生次数 观察多长时间发生一次并基于该次数中断
标签 断点在分支中允许有效和无效
何时发生 在输出窗口显示一条消息以代替真实的中断



7.断开或输出调用者信息(.NET 4.5/Windows 8 Store)


没有为调用程序当前方法准备的全局变量,并且得到当前栈内容是一个非常慢的操作。


一个快速简单的手段是,为方法增加一个额外的可选字符型参数了,用CallerMemberName属性。例如,


1
void MyFunction(string someValue, [CallerMemberName] string caller = null) {
2
    ...
3
}
因为这是可选的值,你不必修改任何调用程序,但现在你能:


①基于调用程序变量,在某些程序中设置断点条件


②向日志文件或者输出窗口输出调用程序内容


你也可以使用CallerLineNumber 和CallerFilePath。同样记住构造函数,终结器和运算符重载将会显示它们的相关方法名(.ctor,op_Equals等等)。





8.监视方法返回值(VS2013, .NET 4.5/Windows 8.1 Store)


有时你想看看方法返回值但对你来说并不容易,因为它是另一个方法的输入参数,所以你并没有存储该值。


这个功能被加到VS2013中,但是它却非常容易错过,你不得不在正确的时间和正确的地方使用它。正确的地方是 Autos窗口,正确的时间是刚好回到方法被调用的地方这一步。当在你调用方法之前或者在方法体中时你看不到这个。它是一个单一步骤,像这样:


2174


箭头标明它是返回值,并且让你知道和它相关的方法名。


写在最后


我也不得不强调,一旦软件离开了你的机器,记录日志对问题解决是多么有效。但这是一个比这个更大的议题。
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
级别: 管理员
发帖
8532
金币
2762
威望
3231
贡献值
0
元宝
0
只看该作者 17楼 发表于: 2014-07-19
Visual Studio 2010提高效率的技巧
相信做开发的没有不重视效率的。开发C#,VB的都知道,我们很依赖VS,或者说,我们很感谢VS。能够对一个IDE产生依赖,说明这个IDE确实有它的独特之处。无容置疑,VS是一个非常强大的IDE,它支持多语言编辑。支持C#,VB,C/C++,HTML......它拥有强大的调试编译功能。它让我们不用去记住那些安装,环境变量设置,服务器设置,编译的繁琐过程。高度集成化。凡事有利有弊,在敏捷开发盛行的时代,VS是否值得我们使用是无容置疑的。但是强大的VS也拥有众多的设置,众多的技巧。记住某些小技巧可以让我们更加方便,快捷地使用VS。这是很有必要的。每个人或多或少记住了一些小技巧。但是不可能全部都记住,我们按照我们自己的编程习惯记住一些自己比较常用的就好。
下面是鄙人在编码过程中发现而且比较经常使用的一些小技巧,希望对你有所帮助。
1.行编辑(复制,剪切,删除,交换)
当你在光标停留行使用快捷键Ctrl+C,X,L时,可以复制,剪切,删除整行内容。当然,右键也是可以的。跟平时的复制,剪切,删除就是选中和没选中代码的区别而已。
如果你想交换上下两行,你可以使用快捷键(Shift+Alt+T),前提是光标要停留在上面那一行。替换之后,光标会一直跟随原本的那一行。
2.注释(//TODO:...)
看标题的话,你可能想打我。那个程序员不知道注释啊,不就//或者/*.....*/亦或者(HTML/XML注释)。但是使用过
// TODO:注释部分
的,估计是少数吧。如果你喜欢用“任务列表”记录一些要做的事情,这个小功能最适合你了。你可以再VS 2010的菜单上找到任务列表窗,点击“菜单->视图->任务列表”,你也可以点击快捷键“Ctrl+W,T”。VS还提供了,HACK,UNTODU,UnresolvedMergeConflict标记注释,你可以在“工具->选项->环境->任务列表”找到并且编辑/添加/删除标记注释。下面是图示:




3.创建区域(#region和#endregion)
当代码越来越多的时候,你会期望可以隐藏一些代码,而#region和#endregion 就是这样的功能。你可以在任何位置隐藏任何代码。即使是隐藏的内容不属于同一个函数。你可以点击#region旁边的+/-,展开/隐藏代码。在隐藏的时候,当你的光标放放置在备注上面的时候,VS会显示出隐藏的代码内容。(听说VB.net使用的时候只可以写在方法外面,不能写在里面。因为本人没写过VB,所以可能在这方面会误导到大家,谢谢网友@天生俪姿 的提醒)


4.选择一个单词/选择一个字符串
如你所知双击一个单词的时候会选择整个单词。按住Ctrl键单击单词的任意位置同样可以选中单词。
双击字符串第一个引号的左侧可以选中整个字符串。按住Ctrl键单击第一个引号的前面同样可以选中整个字符串。
5.将代码放入工具箱
工具箱是拿来放控件的地方。我们在使用控件的时候,只需要从控件当中拖动控件到代码就可以了,这样可以省去大量代码的编辑工作。既然工具箱如此方便,那么是否可以将一段重用性很高的代码放入工具箱呢。答案当然是可以的。
你可以选中你的代码,然后拖入工具箱的空白处,你的代码就保存到工具箱了。就像你将控件拖入代码页面一样,也可以将代码拖入工具箱中。以后你就可以像使用控件一样使用重用的代码。这是非常方便的。而且工具箱的内容不会因为你关闭VS而消失,在你下次打开VS的时候工具箱同样保存了你的代码。如果你需要查看工具箱保存的代码而又不想拖到代码页面中,你只需要将光标停留在工具箱的代码图标上面。如图所示:


6.格式化代码
这个很重要,即使VS在你每次打完“;”回车之后会自动格式化代码。但是难免代码的格式会有所变化,譬如粘贴一段代码之后,代码的格式往往会受到影响。所以,这个还是很有必要知道的。
格式化部分代码:选中代码->Ctrl+K,F。或者Ctrl+E,F。
格式化整个文档:编辑->高级->设置文档的格式。或者 Ctrl+K,D。或者Ctrl+E,D。
7.切换设计/代码图示
在ASP.NET页面切换(HTML): Ctrl+PgUp/Ctrl+PgDn
在windows窗体切换:F7/Shift+F7 (代码/设计)
8.查找错误代码。
当错误列表有错误或者警告提示时,你可以双击这个错误或提示,就可以跳转到错误或警告的语句前。
9.跳转到指定行号
如果代码很多的时候,这是很有用的。在ASP.NET编程的时候,很多错误只有在运行网站的时候才能发现,而这个错误又没被在错误列表提示的时候,你就可以使用这个小技巧跳到错误的代码前面。
双击右下角状态栏的行号,会跳出一个行号跳转窗体。或者快捷键Ctrl+G调出窗体。当然,还可以从菜单栏点击“编辑->跳转..”使用这个功能。


10.快速查找
光标停留在需要查找的词上面,使用快捷键Ctrl+F3可以跳转到下一个相同的词。按Shift+F3可以往上查找。
11.查找“{/}”
查找:你是否很烦恼有些对应的标记找的到头找不到尾,找得到尾不知道那个是头。当你把光标放在“{”的前面,VS会将相对应的”}“标记起来。你也可以将光标停留在“}”的后面,可以达到同样的效果。


12.查找和替换
当你想查找/替换掉某个字符串的时候,你可以按快捷键“Ctrl+F”或者“Ctrl+H”,进行这一操作。另外VS支持正则表达式和通配符。
如果你想从整个项目进行查找/替换,你需要使用快捷键“Ctrl+Shift+F”或者“Ctrl+Shift+H”。当然这一切都可以在菜单栏找到。“编辑->查找和替换”。当你想中止全局替换的时候,你可以使用快捷键“Ctrl+Pause Break”。


13. 书签
书签是很有用的功能,用过Chrome的都知道。在VS当中,书签同样适用。它可以帮你保存位置,以便你写代码。
放置书签:Ctrl+B,T。
上一个书签:Ctrl+B,P。
下一个书签:Ctrl+B,N。
删除所有书签:Ctrl+K,C。(居然打错了,对不起,谢谢@河蟹社会 提醒),正确的是Ctrl+B,C。
除此之外,VS还提供了其它的书签操作。


14.跳转到定义
当你查看代码的时候,往往需要去查看原函数,这是难免的。但是千万不要去手动寻找函数。这效率往往是很低的。你可以右键该函数,选择跳转到定义即可。当然你也可以使用快捷键F12。


15.以文本形式插入外部文本
“菜单->编辑->将文件作为文本插入”
好处是,你不需要打开文件去复制粘贴。


或许这些小技巧你早就知道了。亦或是,你觉得这些技巧根本没啥用。当然,我们最主要的任务还是去编码而已。没有必要将心思花在这上面。但是,当你习惯使用这些小技巧的时候,这为你带来的收益觉得不会让你有所失望的。有些技巧,个人认为还是很有必要掌握的。
QQ: 378890364 微信:wwtree(省短信费) 紧急事宜发短信到0061432027638  本站微博:http://t.qq.com/wwtree QQ群:122538123
描述
快速回复

您目前还是游客,请 登录注册
批量上传需要先选择文件,再选择上传