VisualC++開發(fā)工具與調(diào)試技巧整理

字號:

自己總是用VC平臺來開發(fā)東西,但是有時候總是出這樣那樣的問題,在這里把Visual C++開發(fā)工具與調(diào)試技巧整理摘錄如下,希望對大家有用,省去大家再去搜索的煩惱。
    1.如何在Release狀態(tài)下進(jìn)行調(diào)試
    Project->Setting=>ProjectSetting對話框,選擇Release狀態(tài)。C/C++標(biāo)簽中的Category選General,Optimizations選Disable(Debug),Debut info選Program Database。在Link標(biāo)簽中選中Generate debug info復(fù)選框。
    注:只是一個介乎Debug和Release的中間狀態(tài),所有的ASSERT、VERIFY都不起作用,函數(shù)調(diào)用方式已經(jīng)是真正的調(diào)用,而不查表,但是這種狀態(tài)下QuickWatch、調(diào)用隊(duì)列跟蹤功能仍然有效,和Debug版一樣。
    2. Release和Debug有什么不同
    Release版稱為發(fā)行版,Debug版稱為調(diào)試版。
    Debug中可以單步執(zhí)行、跟蹤等功能,但生成的可執(zhí)行文件比較大,代碼運(yùn)行速度較慢。Release版運(yùn)行速度較快,可執(zhí)行文件較小,但在其編譯條件下無法執(zhí)行調(diào)試功能。
    Release的exe文件鏈接的是標(biāo)準(zhǔn)的MFC DLL(Use MFC in a shared or static dll)。這些DLL在安裝Windows的時候,已經(jīng)配置,所以這些程序能夠在沒有安裝Visual C++ 6.0的機(jī)器上運(yùn)行。而Debug版本的exe鏈接了調(diào)試版本的MFC DLL文件,在沒有安裝Visual C++6.0的機(jī)器上不能運(yùn)行,因?yàn)槿毕鄳?yīng)的DLL,除非選擇use static dll when link。
    3. ASSERT和VERIFY有什么區(qū)別
    ASSERT里面的內(nèi)容在Release版本中不編譯,VERIFY里面的內(nèi)容仍然翻譯,但不再判斷真假。所以后者更安全一點(diǎn)。
    例如ASSERT(file.Open(strFileName))。
    一旦到了Release版本中,這一行就忽略了,file根本就不Open()了,而且沒有任何出錯的信息。如果用VERIFY()就不會有這個問題。
    4.Workspace和Project之間是什么樣的關(guān)系
    每個Workspace可以包括幾個project,但只有一個處于Active狀態(tài),各個project之間可以有依賴關(guān)系,在project的Setting..中可以設(shè)定,比如那個Active狀態(tài)的project可以依賴于其他的提供其函數(shù)調(diào)用的靜態(tài)庫。
    5. 如何在非MFC程序中使用ClassWizard
    在工程目錄下新建一個空的.RC文件,然后加入到工程中就可以了。
    6.如何設(shè)置斷點(diǎn)
    按F9在當(dāng)前光標(biāo)處增加一個斷點(diǎn)和取消一個斷點(diǎn)。
    另外,在編輯狀態(tài)下,按Ctrl+B組合鍵,彈出斷點(diǎn)設(shè)置對話框。然后單擊【Condition…】按鈕彈出設(shè)置斷點(diǎn)條件的對話框進(jìn)行設(shè)置。
    7.在編輯狀態(tài)下發(fā)現(xiàn)成員變量或函數(shù)不能顯示提示是如何打開顯示功能
    這似乎是目前這個Visual C++ 6.0版本的一個bug,可按如下步驟使其正常,如再出現(xiàn),可如法炮制:
    (1)關(guān)閉Project
    (2)刪除“工程名.ncb”文件
    (3)重新打開工程
    8.如何將一個通過ClassWizard生成的類徹底刪除
    首先在工作區(qū)的FileView中選中該類的.h和.cpp文件,按delete刪除,然后在文件管理器中將這兩個文件刪除,再運(yùn)行ClassWizard,這時出現(xiàn)是否移走該類的提示,選擇remove就可以了。
    9. 如何將在workspace中消失的類找出來
    打開該類對應(yīng)的頭文件,然后將其類名隨便改一下,這個時候工作區(qū)就會出現(xiàn)新的類,再將這個類改回原來的名字就可以了。
    10. 如何清除所有的斷點(diǎn)
    菜單【Edit】->【Breakpoints…】,打開“Breakpoints”對話框,單擊【Remove All】按鈕即可??旖萱I是“Ctrl + Shift + F8”。