熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Visual C++開發工具與調試技巧整理[1]

2013-11-13 12:18:53  來源: .NET編程 

  如何在Release狀態下進行調試

  Project->Setting=>ProjectSetting對話框選擇Release狀態C/C++標簽中的Category選GeneralOptimizations選Disable(Debug)Debut info選Program Database在Link標簽中選中Generate debug info復選框

  注只是一個介乎Debug和Release的中間狀態所有的ASSERTVERIFY都不起作用函數調用方式已經是真正的調用而不查表但是這種狀態下QuickWatch調用隊列跟蹤功能仍然有效和Debug版一樣

  Release和Debug有什麼不同

  Release版稱為發行版Debug版稱為調試版

  Debug中可以單步執行跟蹤等功能但生成的可執行文件比較大代碼運行速度較慢Release版運行速度較快可執行文件較小但在其編譯條件下無法執行調試功能

  Release的exe文件鏈接的是標准的MFC DLL(Use MFC in a shared or static dll)這些DLL在安裝Windows的時候已經配置所以這些程序能夠在沒有安裝Visual C++ 的機器上運行而Debug版本的exe鏈接了調試版本的MFC DLL文件在沒有安裝Visual C++的機器上不能運行因為缺相應的DLL除非選擇use static dll when link

  ASSERT和VERIFY有什麼區別

  ASSERT裡面的內容在Release版本中不編譯VERIFY裡面的內容仍然翻譯但不再判斷真假所以後者更安全一點例如ASSERT(fileOpen(strFileName))

  一旦到了Release版本中這一行就忽略了file根本就不Open()了而且沒有任何出錯的信息如果用VERIFY()就不會有這個問題

  Workspace和Project之間是什麼樣的關系

  每個Workspace可以包括幾個project但只有一個處於Active狀態各個project之間可以有依賴關系在project的Setting中可以設定比如那個Active狀態的project可以依賴於其他的提供其函數調用的靜態庫

  如何在非MFC程序中使用ClassWizard

  在工程目錄下新建一個空的RC文件然後加入到工程中就可以了

  如何設置斷點

  按F在當前光標處增加一個斷點和取消一個斷點

  另外在編輯狀態下按Ctrl+B組合鍵彈出斷點設置對話框然後單擊【Condition…】按鈕彈出設置斷點條件的對話框進行設置

  在編輯狀態下發現成員變量或函數不能顯示提示是如何打開顯示功能

  這似乎是目前這個Visual C++ 版本的一個bug可按如下步驟使其正常如再出現可如法炮制

  ()關閉Project
  ()刪除工程名ncb文件
  ()重新打開工程

  如何將一個通過ClassWizard生成的類徹底刪除

  首先在工作區的FileView中選中該類的h和cpp文件按delete刪除然後在文件管理器中將這兩個文件刪除再運行ClassWizard這時出現是否移走該類的提示選擇remove就可以了

  如何將在workspace中消失的類找出來

  打開該類對應的頭文件然後將其類名隨便改一下這個時候工作區就會出現新的類再將這個類改回原來的名字就可以了

  如何清除所有的斷點

  菜單【Edit】->【Breakpoints…】打開Breakpoints對話框單擊【Remove All】按鈕即可快捷鍵是Ctrl + Shift + F

  如何再ClassWizard中選擇未列出的信息

  打開ClassWizard對話框然後切換到Class Info頁面改變Message filter如選擇WindowMessage頁面就會出現Window的信息

  如何檢測程序中的括號是否匹配

  把光標移動到需要檢測的括號前面按快捷鍵Ctrl + ]如果括號匹配正確光標就跳到匹配的括號處否則光標不移動並且機箱喇叭還會發出一聲警告

  如何查看一個宏(或變量函數)的定義

  把光標移動到要查看的一個宏上就比如說最常見的DECLARE_MAP_MESSAGE上按一下F(或右鍵菜單中的相關菜單)如果沒有建立浏覽文件就會出現提示對話框按【確定】按鈕然後就會跳到該宏(或變量函數)定義的地方

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/15643.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.