热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深入掌握VC调试技巧与高级应用

在VC环境中,掌握高效的调试技巧和高级应用对于提高开发效率至关重要。本文详细介绍了如何通过检查程序中的括号匹配来避免常见的语法错误。具体操作包括将光标置于待检测的括号(如大括号{}、方括号[]和圆括号())上,系统会自动高亮显示对应的配对括号,从而帮助开发者快速定位和修复问题。此外,文章还探讨了其他实用的调试工具和方法,如断点设置、变量监视和调用堆栈分析,以全面提升代码调试的准确性和效率。

vc的调试,可以参考如下:
检测程序中的括号是否匹配
把光标移动到需要检测的括号&#xff08;如大括号{}、方括号[]、圆括号&#xff08;&#xff09;和尖括号<>&#xff09;前面&#xff0c;键入快
捷键“Ctrl&#xff0b;]”。如果括号匹配正确&#xff0c;光标就跳到匹配的括号处&#xff0c;否则光标不移动&#xff0c;并且机箱喇叭
还会发出一声警告声。

2.查看一个宏&#xff08;或变量、函数&#xff09;的宏定义

把光标移动到你想知道的一个宏上&#xff0c;就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键
菜单中的Go To Defition Of …),如果没有建立Browse files&#xff0c;会出现提示对话框&#xff0c;确定&#xff0c;然后就
会跳到定义那些东西的地方。

3.格式化一段乱七八糟的源代码

选中那段源代码&#xff0c;按ATL&#43;F8。

4.在编辑状态下发现成员变量或函数不能显示

删除该项目扩展名为.ncb文件&#xff0c;重新打开该项目。

5.如何整理ClassView视图中大量的类

可以在classview 视图中右键新建文件夹&#xff08;new folder&#xff09;&#xff0c;再把具有相近性质的类拖到对应的文件
夹中&#xff0c;使整个视图看上去清晰明了.

6.定位预处理指定

在源文件中定位光标到对称的#if, #endif,使用Ctrl&#43;K.

7.如何添加系统中Lib到当前项目

在Project | Settings | Link | Object/library modules&#xff1a;输入Lib名称&#xff0c;不同的Lib之间用空
格格开.

8.如何添加系统中的头文件(.h)到当前项目.

#include ,告诉编译到VC系统目录去找;使用#include "FileName.h"&#xff0c;告诉编译在当
前目录找.

9.如何在Studio使用汇编调试

在WorkBench的Debugger状态下按CTRL&#43;F7.

10.怎样处理ClassZiard找不到的系统消息

如果要在ClassWizard中处理WM_NCHITTEST等系统消息&#xff0c;请在ClassWizard中Class Info页中将
Message filter改为Window就有了.

11.如何干净的删除一个类

先从Workspace中的FileView中删除对应的.h和.cpp文件,再关闭项目&#xff0c;从实际的文件夹中删除
对应的.h和.cpp文件与.clw文件。

12.如果让控制台应用程序支持mfc类库

可以在控制台应用程序中include 来引入mfc库&#xff0c;但是控制台应用程序缺省是单线程的&#xff0c;mfc是多
线程的&#xff0c;为解决该矛盾&#xff0c;在project setting->c/c&#43;&#43; 选项&#xff0c;选择code generation,
在use run-time library 下拉框中选择debug multithread。

13.如何汉化只有可执行代码的.exe 文件

在nt 下利用vc open file 以resources方式打开*.exe 文件&#xff0c;直接修改资源文件&#xff0c;然后保存即可。

附&#xff1a;VC项目文件说明

.opt 工程关于开发环境的参数文件。如工具条位置等信息&#xff1b; 
.aps (AppStudio File),资源辅助文件,二进制格式,一般不用去管他. 
.clw ClassWizard信息文件,实际上是INI文件的格式,有兴趣可以研究一下.有时候ClassWizard出
     问题,手工修改CLW文件可以解决.如果此文件不存在的话,每次用ClassWizard的时候绘提示你
     是否重建. 
.dsp (DeveloperStudio Project):项目文件,文本格式,不过不熟悉的话不要手工修改.DSW
     (DeveloperStudio Workspace)是工作区文件,其他特点和DSP差不多. 
.plg 是编译信息文件,编译时的error和warning信息文件&#xff08;实际上是一个html文件&#xff09;,一般用
     处不大.在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后
     会自动生成。


推荐阅读
  • 版本控制工具——Git常用操作(下)
    本文由云+社区发表作者:工程师小熊摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 在PHP后端开发中遇到一个难题:通过第三方类文件发送短信功能返回的JSON字符串无法解析。本文将探讨可能的原因并提供解决方案。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 本文探讨了在Django项目中,如何在对象详情页面添加前后导航链接,以提升用户体验。文章详细描述了遇到的问题及解决方案。 ... [详细]
  • 本文详细介绍了如何检查和配置电脑上的PHP环境,包括位数、运行支持以及文件格式的打开方式。适合初学者了解PHP的基础知识和操作方法。 ... [详细]
  • 在编译BSP包过程中,遇到了一个与 'gets' 函数相关的编译错误。该问题通常发生在较新的编译环境中,由于 'gets' 函数已被弃用并视为安全漏洞。本文将详细介绍如何通过修改源代码和配置文件来解决这一问题。 ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文探讨了如何在Classic ASP中实现与PHP的hash_hmac('SHA256', $message, pack('H*', $secret))函数等效的哈希生成方法。通过分析不同实现方式及其产生的差异,提供了一种使用Microsoft .NET Framework的解决方案。 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
author-avatar
流浪汉中的小男人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有