VC調試進階

VC調試進階

VC調試進階(1)

vc的調試,可以參考如下:
檢測程序中的括號是否匹配
把光標移動到需要檢測的括號(如大括號{}、方括號[]、圓括號()和尖括號<>)前面,鍵入快
捷鍵“Ctrl+]”。如果括號匹配正確,光標就跳到匹配的括號處,否則光標不移動,並且機箱喇叭
還會發出一聲警告聲。

2.查看一個宏(或變量、函數)的宏定義

把光標移動到你想知道的一個宏上,就比如說最常見的DECLARE_MAP_MESSAGE上按一下F12(或右鍵
菜單中的Go To Defition Of …),如果沒有建立Browse files,會出現提示對話框,確定,然後就
會跳到定義那些東西的地方。

3.格式化一段亂七八糟的源代碼

選中那段源代碼,按ATL+F8。

4.在編輯狀態下發現成員變量或函數不能顯示

刪除該項目擴展名爲.ncb文件,重新打開該項目。

5.如何整理ClassView視圖中大量的類

可以在classview 視圖中右鍵新建文件夾(new folder),再把具有相近性質的類拖到對應的文件
夾中,使整個視圖看上去清晰明瞭.

6.定位預處理指定

在源文件中定位光標到對稱的#if, #endif,使用Ctrl+K.

7.如何添加系統中Lib到當前項目

在Project | Settings | Link | Object/library modules:輸入Lib名稱,不同的Lib之間用空
格格開.

8.如何添加系統中的頭文件(.h)到當前項目.

#include <FileName.h>,告訴編譯到VC系統目錄去找;使用#include "FileName.h",告訴編譯在當
前目錄找.

9.如何在Studio使用匯編調試

在WorkBench的Debugger狀態下按CTRL+F7.

10.怎樣處理ClassZiard找不到的系統消息

如果要在ClassWizard中處理WM_NCHITTEST等系統消息,請在ClassWizard中Class Info頁中將
Message filter改爲Window就有了.

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 文件,直接修改資源文件,然後保存即可。

附: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 是執行文件的映像信息紀錄文件,除非對系統底層非常熟悉,這個文件一般用不着.
.pch (Pre-Compiled File)是預編譯文件,可以加快編譯速度,但是文件非常大.
.pdb (Program Database)記錄了程序有關的一些數據和調試信息,在調試的時候可能有用.
.exp 只有在編譯DLL的時候纔會生成,記錄了DLL文件中的一些信息.一般也沒什麼用.
.ncb 無編譯瀏覽文件(no compile browser)。當自動完成功能出問題時可以刪除此文件。build後
      會自動生成。

如何在vc的一個工程中加入另外一個工程,並且可以一起調試。
我的程序是這樣的:主程序A調用B.exe,然後調用C.exe。現在,我想調試c,但是c只能被A調用,不能單獨運行。我想將a和c兩個工程一起調試,請問有什麼辦法?

首先vc一般新建一個項目(workspace)都是一個project,
如果需要多個工程:
方法1:新建一個工程,然後選中“add to current workspace”即可。
方法2:已有工程,可以通過“project”菜單-》“insert project to workspace"加入已有的菜單。
一起調試的問題:
首先一個workspace裏面有多個工程的時候,你要設定一個活動工程,就是你點”執行‘的時候是從這個工程啓動的,而不是別的工程,這個可以在工程名字上(不是workspace上)點擊右鍵,選“set as active project”即可。然後設定斷點,即可調試到指定地方。
注意的一個地方:如果要使用別的工程的文件,比如A工程的a.cpp要包括B工程的b.h,那麼a.cpp裏面要使用相對路徑來指定這個b.h的路徑,而不能直接寫成#include "b.h"這樣的。另一種更好的跟能移植的解決方案就是:設置A工程的屬性:project->project settings,選中A工程,然後到c++標籤,拉到preprocesser,在additonal include directories中加入B工程的路徑,這樣就可以直接使用#include "b.h"在A工程使用了。要調試b.h或者其他的,重要在他裏面設定斷點即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章