其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

Visual C++开发工具与调试技巧整理[1]


发布日期:2018年11月15日
 
Visual C++开发工具与调试技巧整理[1]

如何在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(或右键菜单中的相关菜单)如果没有建立浏览文件就会出现提示对话框按【确定】按钮然后就会跳到该宏(或变量函数)定义的地方

[] []

               

上一篇:C语言之extern声明辨析[2]

下一篇:Visual C++开发工具与调试技巧整理[2]