一. 阅读MFC源码的利器:源浏览器文件 mfc.bsc
mfc.bsc 是 VC自带的文件。在阅读MFC时,它是一个非常有用的文件,通过该文件,我们可以很方便的查阅MFC类的源代码。该文件的使用方法如下(以vc7为例):
- 首先打开任意一个工程
- 选择菜单 文件/打开/文件( 快捷键:Ctrl+O ),在弹出的文件选择对话框中,文件类型选择源浏览器文件,然后选择mfc.bsc文件,该文件可在以下目录中找到:
VS2003安装目录\Vc7\atlmfc\src\mfc。 - 选择菜单 视图/对象浏览器( 快捷键 Ctrl+Alt+J ),弹出"对象浏览器"窗口。
- 在"对象浏览器"窗口中选择 mfc.bsc ,然后选择菜单 编辑/查找和替换/查找符号( 快捷键 Alt+F12 )弹出"查找符号"对话框。
- 在"查找符号"对话框中,查找范围选择"选定的组件",查找内容填写你想查看的MFC类名(比如CDialog),然后开始查找。在"查找符号结果"窗口中就会列出结果。
- 在"查找符号结果"窗口中点击相应的查找结果,就可以很方便定位到相应的MFC类的头文件(.h)和实现文件(.cpp)。
二. 调试程序时常用快捷键
- F9 设置断点
- F10 逐函数调试
- F11 逐语句调试。当你需要进入一个函数的内部过程进行调试时,这是一个非常有用的快捷键。
- Shift+F11 跳出当前函数。
- 调试时C++代码切换到汇编代码: vc6是Ctrl+F11, vc7则是Ctrl+Alt+D。
- 汇编代码切换回C++代码:vc6是Ctrl+F11,vc7是在汇编代码窗口的右键菜单中选"转到源代码"(汗,一直没找到转回源代码的快捷键)
三. 调试程序时常用的汇编指令
- __asm{int 3} 中断指令。当程序执行此语句时就会引发中断,进入调试模式,可代替断点。
vs2008重要快捷键
ALT+SHIFT+ENTER 全屏
活动文件自动定位到 解决方案视图
Ctrl J
ALT + ->
光标放到参数名上面,然后输入Ctrl Shif space。
ctrl - 向后定位,
ctrl shift - 向前定位。
ctrl ]
格式化: VC6中:ALT + F8
Ctrl + M + P: 停止大纲显示 ,要开启可关闭该文件再打开即可
功能 | 快捷键 | 详细 | |
---|---|---|---|
1 | 完成单词 | Ctrl+Space | 当您输入足够的字符后,该功能会自动完成其余内容. |
2 | 插入代码段 | Ctrl-K,Ctrl-X | 显示选定要插入的代码段 |
3 | 生成方法存根 | Ctrl-K,M | 光标位于方法调用中,该功能将自动生成该方法的代码 |
4 | 显式实现接口 | Ctrl-K,Ctrl-E | 光标位于一个继承的接口时,该功能会自动生成显示的接口成员声明 |
5 | 列出成员 | Ctrl-J | 显示在上下文中有效的所有可能的成员列表 |
6 | 参数信息 | Ctrl+Shift+Space | 显示方法,函数或属性所必需的参数数目 |
7 | 新建项 | Alt+Shift+C | 新建类,接口等 |
8 | 向后定位 | Ctrl + "-" | 向后定位,简单地说就是返回上一次光标停留的位置 |
9 | 向前定位 | Ctrl+Shift+ "-" | 向后定位的反操作 |
10 | 转到定义 | F12 | 转到所调用过程或变量的定义 |
11 | 下一个错误 | Ctrl+Shift+F12 | 转到下一个错误 |
VC工程 英文改成中文
将资源文件用文本方式打开如UltraEdit32,
将 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
#pragma code_page(1252)
#endif
改为
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
#ifdef _WIN32
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)
#endif
然后在Project>setting>Resources>Language设定为简体中文
VC6.0其实已经不再使用makefile文件进行编译了,但是它仍然可以导出makefile文件,后缀名为*.mak,方法是在工程菜单下的导出makefile文件,你也可以将*.mak文件更名为makefile(为文件全名,无后缀名)这样就可以只使用nmake进行编译而不用再在后面带参数([/f makefile] )。
附:
MS VC++ 10.0 _MSC_VER = 1600
MS VC++ 9.0 _MSC_VER = 1500
MS VC++ 8.0 _MSC_VER = 1400
MS VC++ 7.1 _MSC_VER = 1310
MS VC++ 7.0 _MSC_VER = 1300
MS VC++ 6.0 _MSC_VER = 1200
MS VC++ 5.0 _MSC_VER = 1100
其中MS VC++ 10.0就是Visual C++ 2010,MS VC++ 9.0就是Visual C++ 2008,MS VC++ 8.0就是Visual C++ 2005。
Windows Server 2008 | _WIN32_WINNT>=0x0600 WINVER>=0x0600 |
Windows Vista | _WIN32_WINNT>=0x0600 WINVER>=0x0600 |
Windows Server 2003 | _WIN32_WINNT>=0x0502 WINVER>=0x0502 |
Windows XP | _WIN32_WINNT>=0x0501 WINVER>=0x0501 |
Windows 2000 | _WIN32_WINNT>=0x0500 WINVER>=0x0500 |
Windows NT 4.0 | _WIN32_WINNT>=0x0400 WINVER>=0x0400 |
Windows Me | _WIN32_WINDOWS=0x0500 WINVER>=0x0500 |
Windows 98 | _WIN32_WINDOWS>=0x0410 WINVER>=0x0410 |
Windows 95 | _WIN32_WINDOWS>=0x0400 WINVER>=0x0400 |
Internet Explorer 7.0 | _WIN32_IE>=0x0700 |
Internet Explorer 6.0 SP2 | _WIN32_IE>=0x0603 |
Internet Explorer 6.0 SP1 | _WIN32_IE>=0x0601 |
Internet Explorer 6.0 | _WIN32_IE>=0x0600 |
Internet Explorer 5.5 | _WIN32_IE>=0x0550 |
Internet Explorer 5.01 | _WIN32_IE>=0x0501 |
Internet Explorer 5.0, 5.0a, 5.0b | _WIN32_IE>=0x0500 |
Internet Explorer 4.01 | _WIN32_IE>=0x0401 |
Internet Explorer 4.0 | _WIN32_IE>=0x0400 |
Internet Explorer 3.0, 3.01, 3.02 | _WIN32_IE>=0x0300 |
1. 添加编译所需要(依赖)的 lib 文件
[解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”,多个 lib 以空格隔开。
(等同于“#pragma comment(lib, “winsock.lib”) ”语句)
2. 添加库(Libs)文件目录
方法 1:[解决方案资源管理器]“项目->属性->配置属性->连接器->常规->附加库目录”。 (#add 针对单个工程)
方法 2:[菜单]“工具->选项->项目和解决方案->C++ 目录”,选择对应平台,然后添加所需“库文件”目录。(#add针对所有工程)
方法 1:[解决方案资源管理器]“项目->属性->配置属性->C/C++->常规->附加包含目录” 。 (#add 针对单个工程)
方法 2:[菜单]“工具->选项->项目和解决方案->C++ 目录”,选择对应平台,然后添加所需“包括文件”目录