May 14, 2007

[轉錄] VC6 使用技巧及問題收集

來源:VC6 Stdio 使用技巧及问题收集(2)

轉成繁體&修改一些慣用詞


1.檢測程式中的括弧是否匹配
把游標移動到需要檢測的括弧(如大括弧{}、方括號[]、圓括號()和尖括弧<>)前面,鍵入快捷鍵“Ctrl+]”。
如果括弧匹配正確,游標就跳到匹配的括弧處,否則游標不移動,並且喇叭還會發出一聲警告聲。

[注:當一個函數體的內容過長時,全部選中,可以把游標移動到函數體的 { 處,按下Ctrl+} ,即可全部選中]

2.查看一個巨集(或變數、函數)的巨集定義
把游標移動到你想知道的一個巨集上,就比如說最常見的DECLARE_MAP_MESSAGE上按一下F12(或右鍵功能表中的 Go To Defition Of…),如果沒有建立Browse files,會出現提示對話方塊,確定,然後就會跳到定義那些東西的地方。


[注:這個功能還是比較常用的,不過感覺熱鍵並不如滑鼠選擇的快]

3.格式化一段亂七八糟的源代碼
選中那段源代碼,按ATL+F8

[注:選中一段代碼,按下Tab,或shift+Tab,右(或左)移一個TAb]

4.在編輯狀態下發現成員變數或函數不能顯示
刪除該項目副檔名為.ncb檔,重新打開該專案。

[注:我上次說的不是很準確,.opt裏面可能存有你在Classview新建的檔夾資訊,刪除的話那些分類檔夾資訊也一併刪除了]

5.如何整理ClassView視圖中大量的類
可以在classview 視圖中右鍵新建檔夾(new folder),再把具有相近性質的類拖到對應的檔夾中,使整個視圖看上去清晰明瞭。

[注:事實上,我也見到在FileView裏用檔夾分類的,我的感覺是:可能是為了避免在Classviews裏出現如上述的部分函數丟失的情況吧,畢竟VC6有時並不是很穩定,當然這兩種方法各有利弊的,我目前一般是傾向於前者的]

6.定位預處理指定
在原始檔案中定位游標到對稱的#if, #endif,使用Ctrl+K

7.如何添加系統中Lib到當前專案
在Project ¦ Settings ¦ Link ¦ Object/library modules:輸入Lib名稱,不同的Lib之間用空格格開。

[注:或者這樣,#pragma comment(lib,"yourlib.lib")]

8.如何添加系統中的頭檔(.h)到當前項目。
#include <FileName.h>,告訴編譯到VC系統目錄去找;使用#include "FileName.h",告訴編譯在當前目錄找。

9.如何在Studio使用彙編調試
在WorkBench的Debugger狀態下按CTRL+F7

10.怎樣處理ClassWiZard找不到的系統消息
如果要在ClassWizard中處理WM_NCHITTEST等系統消息,請在ClassWizard中Class Info頁中將Message filter改為Window就有了。


[注:主要是classwizard預設的是toponthemost]

11.如何乾淨的刪除一個類
先從Workspace中的FileView中刪除對應的.h和.cpp檔,再關閉專案,從實際的檔夾中刪除對應的.h和.cpp文件與.clw文件。

12.如果讓控制臺應用程式支援mfc類庫
可以在控制臺應用程式中include 來引入mfc庫,但是控制臺應用程式缺省是單線程的,mfc是多線程的,為解決該矛盾,在 project setting->c/c++ 選項,選擇code generation,在use run-time library 下拉清單 中選擇debug multithread。

13.如何漢化只有可執行代碼的.exe 文件
在nt下利用vc open file 以resources方式打開*.exe 檔,直接修改資源檔案,然後保存即可。

[注:我一般是用exescope編輯的]

================================================================================

附:VC專案檔說明

.opt 工程關於開發環境的參數檔。如工具條位置等資訊;

.aps (AppStudio File),資源輔助檔,二進位格式,一般不用去管他;

.clw ClassWizard資訊檔,實際上是INI檔的格式,有興趣可以研究一下.有時候ClassWizard出問題,手工修改CLW檔可以解決.如果此檔不存在的話,每次用ClassWizard的時候繪提示你是否重建;

.dsp (DeveloperStudio Project):專案檔,文本格式,不過不熟悉的話不要手工修改.dsw(DeveloperStudio Workspace)是工作區文件,其他特點和DSP差不多;

.plg 是編譯資訊檔,編譯時的error和warning資訊檔(實際上是一個html檔),一般用處不大.在Tools->Options裏面有個選項可以控制這個檔的生成;

.hpj (Help Project)是產生幫助檔的工程,用microsfot Help Compiler可以處理;

.mdp (Microsoft DevStudio Project)是舊版本的專案檔,如果要打開此檔的話,會提示你是否轉換成新的DSP格式;

.bsc 是用於流覽專案資訊的,如果用Source Brower的話就必須有這個檔.如果不用這個功能的話,可以在Project Options裏面去掉Generate Browse Info File,可以加快編譯速度;

.map 是執行檔的mapping資訊紀錄檔,除非對系統底層非常熟悉,這個檔一般用不著;

.pch (Pre-Compiled File)是預編譯檔,可以加快編譯速度,但是檔非常大;

.pdb (Program Database)記錄了程式有關的一些資料和調試資訊,在調試的時候可能有用;

.exp 只有在編譯DLL的時候才會生成,記錄了DLL檔中的一些資訊.一般也沒什麼用;

.ncb 無編譯瀏覽檔(no compile browser)。當自動完成功能出問題時可以刪除此檔。build後會自動生成。

0 comments:

Post a Comment