小标
2018-12-28
来源 :
阅读 1752
评论 0
摘要:本文主要向大家介绍了VC编程之VC项目配置基础2,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
本文主要向大家介绍了VC编程之VC项目配置基础2,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。

六.生成文件目录设置
VC6.0中:
在“Project Setting→General→Output directories”的“Output files”处填写*.exe或*.lib/*.dll的生成目录,相应在“Project Setting→Link(或Library)→Output file name”处将会同步文件输出路径。相对目录参考*.dsp文件。
在“Project Setting→General→Output directories”的“Intermediate files”处填写中间文件生成目录。相对目录参考*.dsp文件。
VC2005中:
在“项目属性→常规→输出目录”处填写输出目录,在“项目属性→常规→中间目录”处填写中间目录,相对目录参考$ProjectPath(*.vcproj文件路径)。
在“项目属性→链接器(或管理员)→常规→输出文件”处填写输出文件路径。
输出目录(OutDir)一般为$(SolutionDir)$(ConfigurationName)
输出文件(OutputFile)一般为$(OutDir)/$(ProjectName).exe(*.lib,*.dll)
1.环境变量宏说明
$(SolutionDir)为*.sln文件所在文件夹,尾带‘/’;
$(ProjectDir)为*.vcproj文件所在文件夹,尾带‘/’;
$(PlatformName)为平台名称,例如Win32,Windows Mobile 6 Professional SDK(ARMV4I)。
$(ConfigurationName)为*.sln的*.vcproj文件所在文件夹下的debug、release文件夹,参考*.vcproj文件中的
具体在“项目属性→配置属性→调试→命令”下拉点击“编辑”,展开“宏(M)>>”,可以看到很多项目内置宏。
2.生成目录的配置
输出目录(OutDir):$(ProjectDir)$(PlatformName)/$(ConfigurationName)
以上穿插$(PlatformName)主要是为了发布多平台版本考虑,对于普通的单平台开发,该路径可选。
TargetDIr为OutDir后加‘/’。
输出文件主要按项目区分如下:
(1)DLL项目:*.pdb,*.exp,*.lib
(2)EXE项目:*.pdb
中间目录(IntDir):$(OutDir)/Intermediate
中间文件包括*.pch,*.obj,(*.sbr),vc6(8)0.idb,vc6(8)0.pdb
输出文件:$(OutDir)/$(ProjectName).lib(dll、exe)
(1)DLL项目:*.ilk,*.dll
(2)EXE项目:*.ilk,*.exe
关于*.pch,参考《预编译头文件》;注意*.ilk和*.pdb文件只有在Debug版本时才会生成,关于*.ilk和*.pdb,参考《VC项目配置基础》。
一般一个大的工程(*.dsw,*.sln),同时含有LIB、DLL和EXE项目,习惯将LIB输出到项目输出目录或将这些链接时用到的LIB放到专门的目录;EXE和其运行依赖的DLL都输出到BIN目录,这样便于项目的组织和最终成果的发布。
3.清理Debug\Release目录的脚本 - clean.bat
@ echo --------------------------------------------
@ echo 清理Debug目录和Release目录。
@ echo --------------------------------------------
@ echo
pause
echo 清理开始
FOR /R . %%d IN (.) DO rd /s /q "%%d\Debug" 2>nul
FOR /R . %%d IN (.) DO rd /s /q "%%d\Release" 2>nul
del /q/s *.user *.opt *.plg *.ncb
echo 清理结束
echo. & pause
七.关于相对目录
相对目录是相对某个文件而言的,例如在VC项目属性配置附加包含目录、附加库目录则是相对*.dsp、*.vcproj文件而言的;在某个*.c、*.cpp文件中使用#include包含命令,是相对这个*.c、*.cpp文件而言的。
当前目录是可见的,一般直接引用文件名(夹),对于子文件夹可以添加”./”。
..:父目录
../include:父目录下的include目录
../..:祖父目录
//www.cnblogs.com/include:祖父目录下的include目录
在VC2005中,“属性窗口”可查看当前文档的“文件信息”,其中可查看文件相对*.vcproj的相对路径。
八.依赖项目联编
一个解决方案(dsw、sln)可以创建很多辅助子项目(dsp、vcproj),如何设置使在编译主项目的时,先编译所依赖的辅助项目呢?
一般会配置辅助子项目的OutDir和主项目相同,这样生成的lib或dll对于主项目exe直接可见。
VC6.0中:
选择菜单“Project→Dependencies”可以选择需要联编的项目。
VC2005中:
在解决方案资源管理器中右击项目名称,选择“引用”或“项目依赖项”菜单可添加(选择)引用依赖项目;选择“项目生成顺序”可查看建立项目依赖后的项目生成顺序。
建立依赖关系后,主项目编译(F7,Build)时,若发现辅助依赖子项目有改动,则会先编译子项目。
九.附加DLL调试
VC6.0中:
如果你需要调试的DLL是动态装入(LoadLibrary)的,则需要在“Project Setting →Debug(Category:Additional DLLs)”处添加这个DLL文件。
Place a check in the first column to load the module’s symbols at the start of a debug session.
十.导出makefile
VC6.0中选择菜单“Project→Export Makefile”即可导出Makefile文件*.mak。
VC6以后不再支持makefile输出了。
参考:《VC的MAKE文件的语法》,《vs6 IDE导出的makefile使用方法》,《教你在VS2005下写MakeFile》
十一.代码的编辑与阅读导航
Visual Studio本身就带有充分的代码组织、编辑、分析以及阅读能力的支持。
VC6.0的“Project Settings→C/C++→Generate Browse info”和“Project Settings→Browse info→Build browse info file”可生成向导文件,FileView和ClassView需要这些信息导航。
VC6.0和VC2005中的“Edit→Find in Files”支持指定项目、工程或文件内的关键字搜索。
VC6.0的“Tools→Source Browser”(Alt+F12),提供对“Definitions and References”、“File Outline”、“Base Classes and Members”、“Derived Classes and Members”、“Call Graph”、“Callers Graph”等导航功能支持。VC2005侧边栏“类视图”中支持显示“基类型”、“派生类型”、“继承成员”等功能,右键快捷菜单中的“调用浏览器”支持函数调用关系图和被调用关系图的查看。
编辑时,VC6右键快捷菜单支持“List Members”、“Parameter Info”、“Type Info”、“Complete Word”。对应VC2005文本编辑器工具栏中的“显示对象成员列表”、“显示参数信息”、“显示快速信息”、“显示文字自动完成”。
VC2005右键快捷菜单中支持“查找所有引用”,配合代码定义窗口,可很方便地浏览代码。VC2005标准工具栏中的“向后定位/向前定位”支持定位功能。此外,在阅读代码时,我们可以使用书签(Bookmark)来设置锚点,这样就可以实现基于书签的自定义索引导航。
下面介绍常用的编程辅助插件软件及源代码层次结构分析工具软件。
1.Visual Assist X是一款非常好的Microsoft Visual Studio辅助插件,支持C/C++,C#,ASP,Visual Basic,Java和HTML等语言,能自动识别各种关键字、系统函数、成员变量、自动给出输入提示、自动更正大小写错误、自动标示错误等,有助于提高开发过程的自动化和开发效率。例如VA Outline中右键→Refactor→Rename能够快速更新变量命名。
2.Windows下的Source Insight是一个面向项目开发的程序编辑器和代码导航浏览器,它还能显示reference trees,class inheritancediagrams和call trees。相应的Linux下阅读源代码的利器Source Navigator能很好地解决文件定位和跳转问题。
3.Rational Rose是利用UML(统一建模语言)进行分析和设计面向对象软件系统的强大的可视化工具,可以进行项目需求分析、结构规划和生成框架代码,还可以支持从现有系统逆向转出工程代码,生成Rose模型的功能。
逆向工程(Reverse Engineer)就是从现有系统的代码来生成模型的功能。通过Rational Rose分析已有的代码,可了解代码结构和数据结构,生成类层次关系图、数据模型图和组件图。
十二. VC常用快捷键
Alt+F7:Project Settings
Ctrl+J/K:寻找上一个/下一个预编译条件
Ctrl+Shift+J/K:寻找上一个/下一个预编译条件并将这一块选定
Ctrl+Tab:当前打开文档和上一次打开文档切换。
Alt+O:头文件与cpp文件的交互显示
F12:Goto definition
Shift+F12:Goto reference
Ctrl+Home:文档头
Ctrl+Shift+Home:选定从当前位置到文档头
Ctrl+End:文档尾
Ctrl+Shift+End:选定从当前位置到文档尾
Alt+F8:自动格式重排
Ctrl+F4:关闭当前文档
Ctrl+Z/Alt+Backspace:Undo
Ctrl+Shift+Z/Ctrl+Y:Redo
Ctrl+B/Alt+F9:编辑断点
Ctrl+Shift+F9:去掉所有断点
Ctrl+D:定位工具条查找输入栏
Alt+F3/Ctrl+F:当前文档查找
Ctrl+F3:查找下一个
Ctrl+Shift+F3:查找上一个
Ctrl+H:替换
Ctrl+]:括号匹配
Ctrl+↑:向上滚屏
Ctrl+↓:向下滚屏
Ctrl+←:移到前一个单词
Ctrl+→:移到后一个单词
Ctrl+Shift+←:选定当前位置到前一个单词
Ctrl+Shift+→:选定当前位置到后一个单词
Ctrl+Shift+]:括号匹配块选
Ctrl+Shift+F8:配合鼠标和方向键实现竖直块选
Ctrl+Backspace:删除当前单词的前半截(以光标为分割)
Ctrl+Del:删除当前单词的后半截(以光标为分割)
Ctrl+L:剪切当前行
Ctrl+Shift+L:删除当前行
F2:上一个书签
Shift+F2:上一个书签
Alt+F2:编辑书签
Ctrl+F2:添加/删除一个书签
Ctrl+Shift+F2:清除所有书签
以上就介绍了VC/MFC的学习,希望对VC/MFC有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言VC/MFC频道!
喜欢 | 1
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号