VC6.0project settings(VC6.0工程设置介绍)

打开或新建一个包含至少一个工程的Workspace后,VC6的Project菜单中的“Settings…”命令就变为有效,选择它或者按下热键Alt+F7后,便可调出工程设置对话框,这里面的选项将影响整个工程的建立和调试过程,因此很重要,虽然在一般情况下,其中的大多数选项都不用改变,但了解一下它们的含义能够消除我们心中存在的神秘感,并加深我们对VC工程的理解。

在这个对话框中,左上方的下拉列表框用于选择一种工程配置,包括有Win32 Debug、Win32 Release和All Configurations(指前两种配置一起),某些选项在不同的工程配置中有不同的缺省值。左边的树形视图给出了当前工程所有的文件及分类情况。如果我们把工程“Schedule”置为高亮显示(正如图9-1那样),对话框的右边就会出现总共十个选项卡,其中列出了与工程有关的各种选项,不少选项卡中有一个Reset按钮,按下它后可以把选项卡内的各项设置恢复到生成工程时的初始值。如果我们在树形视图中选择一个文件类或一个文件,那么对话框右边的选项卡会自动减少到一个或两个,其中列出的都是与选中的文件类或文件有关的选项。下面我们就以Win32 Debug为例来看看与工程有关的十个选项卡各自的功能与含义,与文件有关的选项卡则请大家自己琢磨一下。

General 选项

这个选项卡比 较简单,从上向下的第一个选项用于更改使用MFC类库的方式,大家是否还记得我们曾在AppWizard的第五步指定以DLL的方式来使用MFC类库?但 现在我们可以在两种方式之间随意进行切换。第二个选项用于指定在编译连接过程中生成的中间文件和输出文件的存放目录,对于调试版本来说,缺省的目录是工程下面的“Debug”子目录。最下面的第三个选项用于指定是否允许每种工程配置都有自己的文件依赖关系(主要指头文件),由于绝大多数工程的调试版本和发布版本都具有相同的文件依赖关系,所以通常不需要更改该选项。

Debug 选项

Debug选项卡中是一些与调试有关的选项,如图9-2所示,由于选项比较多,它们被分成了几个类,我们可以从Category中选择不同的类别,选项卡就会切换显示出相应的选项,后面的C/C++和Link选项卡也有这种情况。

在General 类别中,我们可以指定要调试的可执行文件名,如果正在编写的程序是一个DLL,那么应在此处指定一个用来调试该DLL的EXE文件。另外三个选项可以指定 用于调试的工作目录,开始调试时给程序传送的命令行参数,以及进行远程调试时可执行文件的路径。把类别切换到Additional DLLs后,我们可以指定在开始调试时是否为一些额外的DLL装载调试符号信息,只有装载了符号信息后才能跟踪进DLL。

C/C++ 选项

C/C ++选项卡控制着VC6的编译器,其中的选项比较多,也比较复杂,心铃要重点介绍一下它。如图9-3所示,最下面有一个Project Options编辑框,里面列出的各种命令开关将会在开始编译时作为命令行参数传送给VC6的编译器,以便对编译过程进行控制。这些命令开关会跟随其它选 项改变而改变,另外,如果我们知道某些命令开关,也可以直接在这个编辑框中输入,开关所对应的选项会自动改变。

在General 类别中,Warning level用于指定编译器显示警告的级别,None表示不显示任何警告,L1表示只显示严重的警告,L2表示显示比L1次严重的警告,L3表示显示比L2 次严重的警告,L4则表示显示出所有的警告,包括那些安全忽略的警告,如果选中了Warnings as errors,那么显示的每一个警告都将会引起一个错误,这样在编译完毕后就无法启动连接器来进行连接。C/C++语言的语法相当复杂和严格,尽管编辑器 在产生了警告后并不会中断工程的建立过程,但警告信息往往表示程序在某些地方存在着潜在的问题,所以心铃建议大家今后把警告等级设置成L3,并尽量排除掉 编译过程中产生的警告。Optimizations用于设置代码优化方式,优化的目的主要有提高运行速度和减小程序体积两种,但有时候这两种目的是相互矛盾的。另外,在极少数情况下,不进行优化,程序能正常运行,打开了优化措施之后,程序却会出现一些莫名其妙的问题。其实这多半是程序中有潜在的错误,关闭优化措施往往只是暂时解决问题。Debug info用于指定编译器产生的调试信息的类型,第一讲中心铃曾介绍过VC6支持即编即调功能,为了使用这一项功能,必须在这里选择生成“Program Database for Edit and Continue”类型的调试信息,而不能生成与老版本编译器兼容的调试信息。Preprocessor definitions是一些预先定义的宏名,MFC类库和Windows的头文件中大量使用了这些宏来设置条件编译。

C++ Language类别中的选项涉及到了C++语言的一些高级特性,包括有成员指针的表示方式、异常处理、运行时类型信息、构造位移等,它们的概念都比较深奥,好在我们一般情况下都不用改变它们。

Code Generation类别中的选项涉及如何生成目标代码,在这里我们可以选择目标处理器的类型、运行时库的类型、进行函数调用时参数的缺省传递方式、结构成员的对齐方式等,一般情况下保持缺省值即可。

在Customize类别中,从上到下六个选项的含义分别为:是否禁止使用Microsoft对C++的扩 展;是否允许函数级别的连接;是否消除重复的字符串;是否允许进行最小化的重建;是否允许递增编译方式;是否允许编译器在开始运行时向Output窗口中 输出自己的版本信息。其中第二、三两项为灰色是因为它们与即编即调功能不兼容,如果在General类别中选择生成其它类型的调试信息,那么就可以更改这 两个选项。

在Listing Files类别中,我们可以指定编译器生成浏览信息和列表文件(Listing file),前者可由浏览信息维护工具BSCMAKE生成浏览信息文件,后者则包含了C/C++源文件经过编译后对应的汇编指令。

Optimizations类别允许我们对优化措施进行更细微的控制,选择了Customize后,便可以选择进行哪几项优化,在Inline expansion中我们可以指定对内联函数的扩展方式。Precompiled Headers类别中是关于预编译头文件的一些选项,一般情况下都不用更改。Preprocessor类别中是关于预处理的一些选择,我们可以在这里预先定义一些宏名,指定部分或所有符号具有未定义状态,指定额外的包含文件所在的目录。

Link 选项

Link 选项卡控制着VC6的连接器,同样比较复杂。如图9-4所示,

在General类别中,我们可以指定输出的文件名,以及一些在连接过程中需要使用的额外的库文件或目标文件,下边五个选项的含义分别为:生成调试信息;忽略所有缺省的库文件;允许递增连接方式(这种方式可以加快连接的速度);生成MAP文件; 允许进行性能分析。

Customize 类别中的一些选项与General类别有重复。选中Use program database允许使用程序数据库,这样连接器会把调试信息放在程序数据库中,如果不选中该选项,那么也不能使用递增连接方式。如果选中了Force file output,那么即使某个模块引用了一些未定义或者重复定义的符号,连接器仍然会生成一个有效(但不一定能正确运行)的可执行文件。在Debug类别 中,我们可以指定调试信息的类别是Microsoft的格式,还是COFF格式,或者两种都有,选中Separate types后连接器会把调试信息分开放在PDB文件中,这样连接起来会更快一些,但调试时速度却会慢一些。

Input类别中是一些与输入库文件有关的选项,我们可以在这里指定使用或不使用某些库文件或目标文件。

Output类别中则是一些与最终输出的可执行文件有关的选项,包括:程序装载的基地址;程序的入口地址;要为堆栈保留多少空间;程序的版本号。这些选项虽然是空着的,但它们都有自己的缺省值,一般情况下都不用改变。

Resources

Resources选项卡控制着VC6的资源编译器。如图9-5所示,我们可以指定编译后生成的资源文件的路径,资源的语言类型,以及额外的资源包含目录。

MIDL

这个选项卡与COM(组件对象模型)编程有关,我们不讨论它。

Browse Info

在这个选项卡中,我们可以指定是否在建立工程的同时也生成浏览信息文件,有了这个文件后,我们就能够在文本编辑器中通过关联菜单的相应命令快速定位到某个符号的定义或引用的地方。

Custom Build

这个选项卡允许我们为建立工程增加自己的步骤,其中在Commands中输入要执行的命令,在Outputs中输入该命令执行后得到的输出文件,VC6将检查这个输出文件和源文件的时间先后关系,以便在需要的时候再次执行指定的命令,重新生成一次输出文件。

Pre-link step

这个选项卡用于添加在连接之前要执行的命令。

Post-build step

这个选项卡用于添加在工程建立完毕之后要执行的命令。

VC6.0 project settings相关推荐

  1. VC6.0 add files to project 没有反应的解决方法

    1.下载filetool.exe,然后将文件解压在一个小文件夹内 2.打开filetool.dsw 在release模式下编译程序,复制filetool.dll 3.放在VC6.0安装目录AddIns ...

  2. GSL库在VC6.0上的配置

    (转至http://blog.csdn.net/leowangzi/article/details/5357163) 这是我在VC6.0上配置Gsl的过程,希望对学习gsl的朋友有所帮助. 一.GSL ...

  3. VC项目配置基础 (VC6.0 和VC2005)

    转载:http://blog.csdn.net/jwcoffee/article/details/5826981 一.预处理宏 1. 通用宏 VC6.0 中: Project Setting à C/ ...

  4. VC6.0的工程设置解读Project--Settings

    做开发差不多一年多了,突然感觉对VC的工程设置都不是很清楚,天天要和VC见面,虽然通常情况下一般都不会修改工程设置,但是还是有必要对它的一些设置项的来龙去脉有一定的了解,所以狂查资料,稍作整理,总结一 ...

  5. VC6.0快捷键一览表

    F1 显示帮助,如果光标停在代码的某个字符上,显示MSDN中相应的帮助内容 F2 书签功能: Ctrl+F2 –在某行设置一个书签(再按一次次是取消) F2 –跳到下一个书签位置 Shift+F2 – ...

  6. VC6.0的工程设置解读Project--Settings - 查志强(转载)

    blogs.com/zhazhiqiang/p/3597622.html 主题 Visual C++ 数据库 [原文: http://wenku.baidu.com/view/f10a241dff00 ...

  7. VC6.0中创建和使用静态库

    一:在VC6.0中创建静态库 1, 新建一个win32 static library工程,默认"OK",然后点击"finish"即可: 2, 在此工程中添加.c ...

  8. VC6.0转成VC2008可能出现的问题

    9月23日 BcgControlbar是个好东西--界面用 解压缩 BCGControlBar.zip (比如,到 c:/bcg 目录中) 把 c:/bcg/bin 增加到你的 path 环境变量中, ...

  9. 运动控制卡应用开发教程之VC6.0

    今天,我们来讲解一下正运动技术运动控制卡应用开发教程之VC6.0. 在正式学习之前,我们先了解一下正运动技术的运动控制卡ECI2418和ECI2618.这两款产品分别是4轴,6轴运动控制卡. ECI2 ...

最新文章

  1. 炸裂!这些大厂跪求的人才太牛了!
  2. 《数学之美》第22章 自然语言处理的教父马库斯和他的优秀弟子们
  3. JDBC的学习(三)——以查询新闻系统为例
  4. 浅谈5G机房配套那些事
  5. Linux常用命令大全(转载收藏)
  6. 介绍了如何取成员函数的地址以及调用该地址
  7. Codeforces Round #628 (Div. 2) F. Ehab‘s Last Theorem dfs树
  8. 学好Java开发的关键七步
  9. 图解Cisco Packet Tracert之利用TFTP来升级路由器的IOS
  10. xslt 定义表格html表格样式,使用 XSLT 作为 HTML 的样式表.doc
  11. 【学习记录】第一章 数据库设计-《SQL Server数据库设计和开发基础篇视频课程》...
  12. SpringBoot与web开发
  13. Gradle Maven部署,转化
  14. C语言中浮点数在内存中的存储方式
  15. IEEE 会议论文 Latex模板
  16. 三星识别文字_免费文字识别
  17. 4x root 红米_小米红米Note4X获取root权限教程
  18. Gravity 介绍
  19. h5故障代码_格力变频空调显示故障代码“H5”维修方法与流程
  20. 扰人的异常:net.sf.json.JSONException: Object is null

热门文章

  1. 基于JAVA汽车租赁平台的设计与实现计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  2. 管理三规则——吉格勒定理、洛克定律、韦特莱法则
  3. 时间过的好快呀,中国云计算,一转眼也十年啦
  4. 服务器充电桩是什么显示,怎么查高速服务区有没有充电桩?怎么查高速沿途充电桩...
  5. C语言中##和#的作用
  6. 华为c语言笔试形式,最新华为C语言笔试题目分享
  7. vue学习入门——Idea中安装vue插件
  8. 泛型指的是什么?有什么作用?
  9. instruction-tuning
  10. 【数值计算】数值解析--二阶偏微分方程的3种基本形