odules:输入 Lib 名称,不同的 Lib 之间用空格格开。 [注:或者这样,#pragma comment(lib,"yourlib.lib")] 14.如何添加系统中的头文件(.h)到当前项目。 #include
,告诉编译到 VC 系统目录去找;使用#include "FileName.h",告诉编译在当前目 录找。 15.如何在 Studio 使用汇编调试 在 WorkBench 的 Debugger 状态下按 CTRL+F7。 16.怎样处理 ClassWiZard 找不到的系统消息 如果要在 ClassWizard 中处理 WM_NCHITTEST 等系统消息,请在 ClassWizard 中 Class Info 页中将 Message filter 改为 Window 就有了。 [注:主要是 classwizard 默认的是 toponthemost] 17.如何干净的删除一个类 先从 Workspace 中的 FileView 中删除对应的.h 和.cpp 文件,再关闭项目, 从实际的文件夹中删除对应的.h 和.cpp 文件与.clw 文件。 18.如果让控制台应用程序支持 mfc 类库 可以在控制台应用程序中 include 来引入 mfc 库,但是控制台应用程序缺省是单线程的,mfc 是多线程 的,为解决该矛盾,在 project setting->c/c++ 选项,选择 code generation,在 use run-time library 下拉框 中选择 debug multithread。 19.如何汉化只有可执行代码的.exe 文件 在 nt 下利用 vc open file 以 resources 方式打开*.exe 文件,直接修改资源文件,然后保存即可。 [注:我一般是用 exescope 编辑的] 附: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 后会自 动生成。
VC++的链接错误 LNK2001
学习 VC++时经常会遇到链接错误 LNK2001,该错误非常讨厌,因为对于编程者来说,最好改的错 误莫过于编译错误,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其 LNK2001 错误,常常使人不明其所以然。如果不深入地学习和理解 VC++,要想改正连接错误 LNK2001 非常困难。 初学者在学习 VC++的过程中,遇到的 LNK2001 错误的错误消息主要为: unresolved external symbol “symbol”(不确定的外部“符号”)。 如果连接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误消息。一 般来说,发生错误的原因有两个:一是所引用的函数、变量不存在、拼写不正确或者使用错误;其次可