VC++ Studio 使用技巧

1.检测程序中的括号是否匹配
    把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号<>)前面,键入快捷键"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 ,告诉编译到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 文件,直接修改资源文件,然后保存即可。

14 .在Studio中快速切换两个文件
  有时,我们需要在最近使用的两个文件中快速切换,换 Ctrl+F6。这在两个文件不相今的时候就有用的。

15.取得源程序预处理后的结果:
  在Studio里,可以在->PROJECT->SETTINGS->C/C++->Project Options中,在最后加上 /P /EP 这两个编译开关即可做到"只进行预处理".就可以了。编译以后就可以在源程序目录中发现“文件名.I ”的文本文件。这就是预处理后的结果
(注意注:区分大小定,请用大定/P)

16.在Debug模式中查看WINAPI调用后的返回值:
   很简单,且实用:在watch中加入@hr,err。在CSDN的文档中心有一篇讲得更细,请参考。

17.产生指定源程序文件的汇编代码:
   从IDE菜单的Project->Setting打开项目设置,按如下文件做:
   1.先在左边选择指定文件,可以多选。
   2.在右边的C++属性页中,在category中选择List Files,接着在下面的List Files Type中选择Assembly and source    code(或选择其它),最后在List File Name中输入在个C/C++源文件产生的相应的汇编代码的文件。
   3.编译整个工程。

18  手工编译纯资源成dll:
Rc.exe /v data.rc
Cvtres.exe /machine:ix86 data.res
Link /SUBSYSTEM:WINDOWS /DLL /NOENTRY data.res ;编译成DLL文件

这种方式创建的DLL是最小的,比起你用Win 32 Dynamic Libray等产生的更小。


19.预编译头文件

正确使用预编译头文件能大大提高我们的编译效率。但是预编译头文件也容易用错,值得注意的错误用法如下:

1) 在预编译头文件里include自己的头文件(当然, 如果你的头文件不经常变化, 也可以)
原因:自己的头文件一般会经常变, 便利后导致预编译的东东重新编译, 降低了编译速度。

2) 在其他的头文件里也include 预编译头文件
假设你的其他头文件也include了预编译头文件, 如果别人引用你的这个头文件又没有设置成预编译头文件。而这时vs判断不出 他的头文件里include的stdafx是预编译头文件,做普通文件编。可想而知,他的stdafx里如果有import外面大型的库,那编译速度将大大降低。

在VC编译环境里设置是否使用预编译头文件:

项目属性 | c/c++ |Precompiled设置为Use Precompiled Header, stdafx.h


20.预处理指令 与 宏定义

1)避免重定义的错误

#ifndef XX_H
#define XX_H
#endif

在VC.Net 中会普遍使用一个预处理指令来代替以上,该指令保证头文件只被编译一次。但是考虑到兼容性并没有太多的使用它。

#pragma once

2)对源代码进行版本控制

常用在为多个平台开发不同版本,或者开发调试版本或发行版本。

在VC编译环境里设置使用哪些预编译宏定义

项目属性 | c/c++ |Precompiled Headers设置为需要的宏定义


附: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后会自动生成.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值