概述
一個好的環境,能讓你的工作事半功倍。下面是我個人對VC++6.0的環境配置,僅供拋磚引玉之用。
2. 環境設置(Environment Settings)
此設置針對與所有工程有效。打開目錄ToolsàOptions,在此作相應的設置。
2.1 配置Tab鍵所占的字寬
一般所來,Tab在各個程序中字寬為8,而VC默認把其設為4。我們將其改回8,好處是,當將代碼從VC復制到其它程序(如notepad)時,代碼不會變亂(不對齊)。如圖:
2.2 配置代碼顏色
改動代碼的顏色,給我們看代碼帶來方便。個人的具體配置,可依據個人的喜好。
2.3 設置前后的效果對比
代碼顯示的效果
Tab字寬對“從VC中復制出來的代碼”的影響
3. 工作區域設置(Workspace Settings)
我個人的感覺,寫代碼,就要讓代碼的可視區域最大,盡量釋放代碼的顯示空間。下面來看看我們該如何做。
1. 調整工具欄(Tool Bar)
在Tool Bar上右鍵,選擇Customize…àToolbars,并自己建立一個toolbar,比如角“MyToolBar”。如圖:
按住Ctrl鍵,用鼠標從其它Toolbar上將自己需要的button拖入自己的Toolbar。把一些不常用的 or 已熟悉其快捷鍵的button通通去掉,盡量減少button的數量,讓Toolbar最終只占用一行。見后面的對比圖。
,看到兩個button之間的分隔欄了么。如何增加 or 刪除分隔欄呢?這里有點小技巧,不知道VC++的軟件設計人員咋想的,設計這么不起眼的方式。
增加分隔欄:用鼠標點住右邊button的左半部,出現此效果。向右移動大約半個button的距離,放開鼠標,則會出現分隔欄。
刪除分隔欄:與上面類似,用鼠標點住右邊button的左半部,出現此效果。向左移動鼠標,直到“I”樣式的東東跑到了分隔欄的左邊,放開鼠標,則分隔欄不見了。
2. 調整Workspace的位置
將Workspace窗體放到程序的右邊,讓其懸浮著,不要與VC++的其它部分連在一起。寫代碼時,必要時還可把其關掉,增加可視空間。見下面的對比圖。
Workspace窗體指的是:
3. 關閉Output窗體
寫代碼的時候不需要Output窗體,多按幾下ESC鍵,就把其關掉了。別怕,下次build的時候,這家伙會自己跑出來的。見下面的對比圖。
Output窗體指的是:
4. 設置前后的效果對比
設置前:
設置后:(每一頁能看到的代碼要多出許多幾行)
4. 工程設置(Project Settings)
此設置僅對當前工程有效。每次新建一個工程后,都需要進行這些設置,以方便以后的工作。
4.1 設置Precompiled Headers
平常我們編譯程序,在Debug或Release目錄下,會發現一個.pch的文件,文件很大,嚴重占用我們的硬盤空間。其實這個文件沒什么用,我們設置一下,讓VC不要產生此文件。
選擇菜單ProjectàProject Settings…àC++。然后按下圖所示,進行設置。
2. 設置編譯后的文件路徑
選擇菜單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
5. 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)。
2. 讓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窗體。
6. 快捷鍵(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 屬性
7. 總結
自己的編程環境應當由自己去感受、去配置。以上對VC的設置,很多內容參照了梁肇新的《編程高手箋言》一書。
對于VC,有一個VC Assistant的軟件,很不錯。