C++ 环境配置 1
-
环境设置(Environment Settings)
此设置针对与所有工程有效。打开目录ToolsàOptions,在此作相应的设置。
2.1 配置Tab键所占的字宽
一般所来,Tab在各个程序中字宽为8,而VC默认把其设为4。我们将其改回8,好处是,当将代码从VC复制到其它程序(如notepad)时,代码不会变乱(不对齐)。如图:
2.2 配置代码颜色
改动代码的颜色,给我们看代码带来方便。个人的具体配置,可依据个人的喜好。
2.3 设置前后的效果对比
代码显示的效果
Tab字宽对“从VC中复制出来的代码”的影响
-
工作区域设置(Workspace Settings)
我个人的感觉,写代码,就要让代码的可视区域最大,尽量释放代码的显示空间。下面来看看我们该如何做。
-
-
调整工具栏(Tool Bar)
在Tool Bar上右键,选择Customize…àToolbars,并自己建立一个toolbar,比如角“MyToolBar”。如图:
按住Ctrl键,用鼠标从其它Toolbar上将自己需要的button拖入自己的Toolbar。把一些不常用的 or 已熟悉其快捷键的button通通去掉,尽量减少button的数量,让Toolbar最终只占用一行。见后面的对比图。
,看到两个button之间的分隔栏了么。如何增加 or 删除分隔栏呢?这里有点小技巧,不知道VC++的软件设计人员咋想的,设计这么不起眼的方式。
增加分隔栏:用鼠标点住右边button的左半部,出现此效果。向右移动大约半个button的距离,放开鼠标,则会出现分隔栏。
删除分隔栏:与上面类似,用鼠标点住右边button的左半部,出现此效果。向左移动鼠标,直到“I”样式的东东跑到了分隔栏的左边,放开鼠标,则分隔栏不见了。
-
-
调整Workspace的位置
将Workspace窗体放到程序的右边,让其悬浮着,不要与VC++的其它部分连在一起。写代码时,必要时还可把其关掉,增加可视空间。见下面的对比图。
Workspace窗体指的是:
-
-
关闭Output窗体
写代码的时候不需要Output窗体,多按几下ESC键,就把其关掉了。别怕,下次build的时候,这家伙会自己跑出来的。见下面的对比图。
Output窗体指的是:
-
-
设置前后的效果对比
设置前:
设置后:(每一页能看到的代码要多出许多几行)
-
工程设置(Project Settings)
此设置仅对当前工程有效。每次新建一个工程后,都需要进行这些设置,以方便以后的工作。
4.1 设置Precompiled Headers
平常我们编译程序,在Debug或Release目录下,会发现一个.pch的文件,文件很大,严重占用我们的硬盘空间。其实这个文件没什么用,我们设置一下,让VC不要产生此文件。
选择菜单ProjectàProject Settings…àC++。然后按下图所示,进行设置。
-
-
设置编译后的文件路径
选择菜单ProjectàProject Settings…àGeneral。然后按下图所示,进行设置。
Intermediate files,编译时产生的临时文件的地方,生成exe文件后,这些家伙基本上就没用了。我们设置一个路径,让所有工程的临时文件都待在一起,以方便最后一次性将它们删除。我自己将所有的临时文件都存放在d:\compile_temp目录下。
Output files,生成的exe文件存放的地方,习惯上放在名为bin的目录下。
例子:
[Release]
Intermediate files: d:\compile_temp\工程名\release
Output files: bin
[Debug]
Intermediate files: d:\compile_temp\工程名\debug
Output files: bin\debug
-
Console-base的调试环境
在写程序时,有时在Debug模式下写好的程序,到了Release模式下,就罢工了,不能正常运行。而一开始就写Release程序,又不方便调试。
下面我们来建立一个console-base的windows程序,这个东西还是挺便于调试的。
5.1 设置Console-base
新建一个console程序,选择菜单BuildàConfigurations…àAdd…,增加一个configuration。名字叫,比如Console_base。如图:
然后选择菜单ProjectàProject Settings…àC++。并按下图设置:
加入以下测试代码:
#include <stdio.h>
#ifdef CONSOLE_PRINTF
# define CONS_PRINTF printf
#else
# define CONS_PRINTF //
#endif
void main()
{
char *p = "Hello";
CONS_PRINTF( "%d - %s\n",
10,
p );
}
并编译、链接,看运行的效果。
在Release下,没有任何输出。而在Console_base下,程序输入:10 – hello。呵呵,达到我们的要求。下面解释一下这个效果是如何实现的。
代码中最重要的是这一段:
#ifdef CONSOLE_PRINTF
# define CONS_PRINTF printf
#else
# define CONS_PRINTF //
#endif
当宏CONSOLE_PRINTF存在时,CONS_PRINTF等于printf;不存在时,CONS_PRINTF等于“//”,将其后面的代码注释掉,让其不起作用。这里应该是VC编译器的一个bug,正是这个bug,帮助我们得以实现所需的效果。
让我们来看测试的代码:
CONS_PRINTF( "%d - %s\n",
10,
p );
当宏CONS_PRINTF不存在时,得到的代码本该是:
//( "%d - %s\n",
10,
p );
编译时,应该会出错的,但在用宏作替换的情况下,编译器不出错(编译器的bug)。
-
-
让Console与Window共存
把刚才起作用的代码放到一个头文件中,如cons_printf.h。代码如下:
#ifndef CONSOLE_BASE_DEBUG_UTILITY_H
#define CONSOLE_BASE_DEBUG_UTILITY_H
#include <stdio.h>
#ifdef CONSOLE_PRINTF
# define CONS_PRINTF printf
#else
# define CONS_PRINTF //
#endif
#endif
并在main.cpp中添加windows的代码and改变main()的内容。如下:
// ... windows app headers
#include "cons_printf.h"
// ... windows app codes
void main()
{
WinMain( GetModuleHandle(NULL), NULL, GetCommandLine(), SW_NORMAL );
}
并在Project Settings中,将Release模式的编译方式更便为windows。如图:
/subsystem,是控制当前编译的是console程序或windows程序的开关。
/subsystem:windows 编译为windows程序,程序入口WinMain。()
/subsystem:console 编译为console程序,程序入口main()
最后在windows程序中加上测试代码。如下:
case WM_CREATE:
CONS_PRINTF( "WM_CREATE here\n" );
break;
// ...
case WM_DESTROY:
CONS_PRINTF( "WM_DESTROY here\n" );
PostQuitMessage(0);
break;
进行编译,看效果。在Console_base下,程序会在console窗体显示文本。而在Release下,和正常的windows程序一样,只有一个window出现,没有console窗体。
-
快捷键(Shortcut-key)
为提高我们写程序的效率,快捷键是少不了的东西。下面将列出一些常用的快捷键(依据个人经验而成)。VC中所有的快捷键,可在菜单HelpàKeyboard Map…中查到。你还可以在ToolsàCustomize…àKeyboard中,依据个人习惯,定制快捷键。
6.1 文件操作
在写程序时,打开或新建一个文件,其实使用菜单(menu)的快捷键(例如Alt + F + O)也许比使用特定的快捷键(例如Ctrl + O)更快,感觉按起来更顺手,也许是个人习惯吧。对于菜单中一些没有特定快捷键的选项,便只能用Alt + F + xxx的方式了。
Ctrl + O or Alt + F + O 打开文件
Ctrl + N or Alt + F + N 新建文件
Ctrl + S or Alt + F + S 保存文件
Alt + F + K 打开工程
Alt + F + L 保存所有文件
Alt + F4 关闭当前窗口
6.2 代码间的快速跳转
VC中有个很有用的东东——flag。它可对你编辑的当前一段代码进行标示,让你下次快速找到这。Ctrl + F2会给当前行加上一个flag,如果当前行已经存在flag,则将这个flag清除。
Ctrl + F2 设立/清除flag
Ctrl + Shift + F2 清除所有的flag
F2 jump到下一个flag位置
下面是个例子,这是你按F2,即可在两段代码间快速跳转。
还有两个快捷键,也很常用:
Ctrl + Home 跳转到文件顶部
Ctrl + End 跳转到文件尾部
6.3 编译·运行·调试(debugging)
对于什么是断点、什么是单步跟踪,这里就不再赘述。下面仅列出快捷键。
F9 break point
Ctrl + F7 Compile
F7 Build
Ctrl + F5 Build and Run
F5 Build and Run in DEBUG mode
F10 单步跟踪
6.4 各类常用的window
Alt + 0 Workspace Window
Alt + 2 Output Window
Alt + 3 Watch Window
Alt + 4 Variables Window
Alt + 5 Registers Window
Alt + 6 Memory Window
Alt + 7 CallStack Window
Alt + 8 Disassembly Window
Ctr l+ W ClassWizard
Alt + Enter 属性
-
总结
自己的编程环境应当由自己去感受、去配置。以上对VC的设置,很多内容参照了梁肇新的《编程高手笺言》一书。
对于VC,有一个VC Assistant的软件,很不错。