vc++6.0配置要求,vc++6.0工程选哪个
WIN32:表示是Window 32位系统的编译器,一般用作平台标识。
_MBCS/_UNICODE:表示此项目中使用的字符集(多字节字符集/UNICODE)。
在VC6.0的“项目设置 c/项目选项”中会有一个/D _MBCS 或/D _UNICODE 开关
在VC2005的“项目属性配置属性常规项目默认字符集”中选择“使用多字节字符集”或“使用Unicode字符集”;在“项目属性配置属性C/C使用UNICODE响应文件”中选择“是”或“否”。“项目属性配置属性C/C命令行”中将有一个/D _MBCS 或/D _UNICODE /D UNICODE 开关。
当项目中的文件具有UNICODE路径(例如,中文路径)时,应在“项目属性C/C常规”和“项目属性链接器常规”中打开“使用UNICODE响应文件”开关。
_CONSOLE/_WINDOWS:表示应用程序的类型(控制台程序/Windows窗口应用程序)。
_DEBUG/NDEBUG:表示编译后的版本(Debug/Release)。
除此之外,VC还有一些针对不同项目类型的特定宏,用来区分编译器中的项目类型。
2.特定宏
(1) Win32静态库项目
在VC6.0中:
项目设置 C/C(类别:常规)预处理程序定义:_LIB
_WINDOWS,_AFXDLL(如果选择了MFC支持)
在VC2005中:
属性常规配置类型静态库(。lib)
属性c/c预处理器预处理器定义:_LIB
(2) Win32动态链接库项目
在VC6.0中:
项目设置 C/C 预处理程序定义:_WINDOWS,_USRDLL,DLL_EXPORTS
在VC2005中:
属性一般配置类型动态库(。dll)
属性c/c预处理器预处理器定义:_ WINDOWS_ USRDLLDLL _导出
(3) MFC DLL项目
1带有MFC静态链接的常规dll(带有静态链接MFC的常规DLL)
在VC6.0中:
项目设置 C/C 预处理器定义:_WINDOWS、_WINDLL、_USRDLL
在VC2005中:
属性c/c预处理器预处理器定义:_ WINDOWS_USRDLL
2使用共享MFC DLL的常规DLL(使用共享MFC DLL的常规DLL)
在VC6.0中:
项目设置 C/C 预处理器定义:_WINDOWS、_WINDLL、_AFXDLL、_USRDLL
在VC2005中:
属性c/c预处理器预处理器定义:_ WINDOWS_USRDLL
3 MFC扩展dll(使用共享MFC dll) (MFC扩展DLL)
在VC6.0中:
项目设置 C/C 预处理器定义:_WINDOWS、_WINDLL、_AFXDLL、_USRDLL
在VC2005中:
属性c/c预处理器预处理器定义:_ WINDOWS_AFXEXT
在一个DLL项目中,_USRDLL宏的意思是生成导出库!
有关VC编译器预处理宏,请参考:
《Predefined Macros ( VC6.0 )》
《C/C++ Preprocessor Reference-Predefined Macros ( VC8.0 )》
《What’s the difference between the WIN32 and _WIN32 defines in C++》
二。控制台程序的工作目录和运行参数
在VC6.0中:
在“项目设置调试工作目录”填写exe程序的工作目录。
在“项目设置调试程序参数”处填写主要运行参数。
在VC2005中:
在“项目属性配置属性调试工作目录”中填写exe程序的工作目录。
在“项目属性配置属性调试命令参数”中填写主要操作参数。
的默认工作目录是ProjectDir,即*所在的目录。dsw/*。vcproj位于。
当编译器启动应用程序(Ctrl F5)时,可以将依赖的lib和dll库文件所在的目录设置为工作目录。在应用程序执行期间,创建和保存的文件将位于工作目录中。
工作目录指当前目录,路径由GetCurrentDirectory()获取;要更改的SetCurrentDirectory。
运行目录是指exe所在的路径,可以通过GetModuleFileName()获取。
三。其他头文件包括
在VC6.0中:
VC6.0默认包含路径:工具选项目录包含文件。
对于特定项目的头文件,在“项目设置 c/c(类别:预处理器)附加包含目录”中添加一个附加的头文件目录,并参考*。相对于目录的dsp文件。
目录不需要加双引号,路径分隔符是/或者/,所以不需要对反斜杠/进行转义。多个路径用逗号分隔。
“/I”对应的include命令会出现在“项目设置 c/项目选项”中。
在VC2005中:
VC2005默认包含路径:工具选项项目和解决方案VC目录包含文件。
对于特定项目的头文件包含,在“项目属性配置属性C/C通用附加包含目录”中添加一个附加包含目录,并参考*。相对目录的vcproj文件。
目录不需要加双引号,路径分隔符是/或者/,所以不需要对反斜杠/进行转义。多个路径用分号分隔。
相应地,“/I”的include命令会出现在“项目属性配置属性C/C命令行”中。
关于包含#include的两种方式
#包括标准*。h是编译器指定的包含路径下的头文件:即VC6.0中“工具选项目录包含文件”指定的包含目录(对应VC2005中的“工具选项项目和解决方案VC目录包含文件”)。默认情况下包括。
(1)$(VCInstallDir)INCLUDE(/Microsoft Visual Studio/VC98/INCLUDE)
(2 )( VCInstallDir)ATL MFC/INCLUDE(/Microsoft Visual Studio/VC98/ATL/INCLUDE 、/Microsoft Visual Studio/VC98/MFC/INCLUDE)
(3 ) $(VCInstallDir)平台SDK/include ( VC2005).
用户也可以自己添加包含路径。
一般来说,尖括号可以用来包含目录“工具选项目录包含文件”(“工具选项项目和解决方案VC目录包含文件”)中的文件。系统尖括号的包含首先位于编译器设置的包含路径下,然后位于附加的包含目录下。
# Include“my header . h”是在“工具选项目录包含文件”(“工具选项项目和解决方案VC目录包含文件”)中手动添加的包含路径下的头文件,或者是附加包含目录下的头文件。
对于编译器提供的标准库函数头文件(“工具选项目录包含文件”),一般使用尖括号进行包含声明,当然双引号也没什么问题。
在工具选项目录包含文件的附加包含目录下手动添加的包含路径和头文件的包含可以用尖括号包含,但通常使用双引号。
原则上,对于项目或文件的可见包含目录中头文件的包含,使用上述两种包含方法中的任何一种都不会出错,主要是因为它们在搜索目录时的顺序不同。习惯上用尖括号包含标准库函数头文件,用双引号包含用户定义的头文件。建议除了标准的SDK(如DirectX)之外,对于具体的项目一般要使用额外的头文件,编译器的“工具选项目录包含文件”(对应于VC2005的“工具选项项目和解决方案VC目录包含文件”)尽量不要用于编译器级别的全局配置。下面的链接库包含相同的处理。
外部依赖项显示了要在您的项目中使用的头文件,这些头文件不在您的项目中,也不在VC的默认包含路径中。参考:《VC6.0的 External Dependencies》。
四。其他链接库包括
在VC6.0中:
VC6.0默认库包含路径:工具选项目录库文件。
对于特定项目的头文件包含,可以通过以下两个步骤添加附加的链接库:
1.在“项目设置链接(类别:输入)附加库路径”中添加附加库目录,参见*。相对目录的dsp文件。
目录不需要加双引号,路径分隔符是/或者/,所以不需要对反斜杠/进行转义。多个路径用逗号分隔。
相应的将同步“/libpath”库,该库包含“项目设置链接项目选项”中的命令。
2.在“项目设置link(category:general)object/library modules”处添加库文件名YourLib.lib(也可以在文件中使用# pragma comment (lib, yourlib.lib )显式导入依赖的静态库)。多个库由空格分隔。
相应的将同步“项目设置链接项目选项”中包含的库名称。
在VC2005中:
VC2005的默认库包含路径:工具选项项目和解决方案VC目录库文件
对于包含特定项目的库文件,可以通过以下两种方式添加其他库目录:
1.
(1)在“项目属性配置属性链接器常规附加库目录”中输入附加库的目录路径,并参考*。相对目录的vcproj文件。
目录不需要加双引号,路径分隔符是/或者/,所以不需要对反斜杠/进行转义。多个路径用分号分隔。
相应的将同步“/LIBPATH”库,该库包含“项目属性配置属性链接器命令行”中的命令。
(2)在“项目属性配置属性链接器输入附加依赖项”处添加库文件名YourLib.lib(也可以使用# pragma comment (lib, yourlib.lib )显式导入文件中的依赖静态库)。多个库由空格分隔。
相应的将在“项目属性配置属性链接器命令行”同步包含的库名称。
2.
在“项目属性配置属性链接器命令行”添加库文件名YourLib.lib(如有必要,添加相对目录以确保YourLib的可见性)。
动词(verb的缩写)生成文件的目录设置
在VC6.0中:
填写*的生成目录。exe或*。lib/*。dll在“项目设置通用输出目录”的“输出文件”中,对应的文件输出路径会同步在“项目设置链接(或库)输出文件名”中。请参阅*。相对目录的dsp文件。
在“项目设置通用输出目录”的“中间文件”中填写中间文件生成目录。请参阅*。相对目录的dsp文件。
在VC2005中:
在“项目属性,常规,输出目录”处填写输出目录,在“项目属性,常规,中间目录”处填写中间目录。请参阅*。相对目录的vcproj文件。
在“项目属性链接器(或管理员)常规输出文件”中填写输出文件路径。
输出目录(OutDir)通常为$(solution dir)$(configuration name)
OutputFile一般是$ (outdir)/$ (projectname)。exe (*。lib,*。dll)
描述:
$(SolutionDir)是存放*的文件夹。sln文件的位置,后跟“/”;
$(ProjectDir)是存放*的文件夹。vcproj文件的位置,后跟“/”;
$(ConfigurationName)是*所在文件夹下的调试和发布文件夹。*的vcproj文件。sln位于。请参考*中的配置项目。vcproj文件。
点击“项目属性配置属性调试命令”下拉中的“编辑”展开“宏(M)”,可以看到项目中有很多内置的宏。
的一般配置是:
输出目录(outdir): $(项目目录)$(平台名称)/$(配置名称)
中间目录(intdir): $ (outdir)/intermediate
输出文件:$ (outdir)/$ (projectname)。lib (dll,exe)
不及物动词关于相对目录
相对目录是相对于某个文件的。比如VC项目属性中配置的附加包含目录和附加库目录都是相对于*。dsp和*。vcproj文件。*中#include include命令的使用。c,*。cpp文件相对于这个*。c,*。cpp文件。
当前目录可见。一般直接引用文件名(文件夹),和”。可以为子文件夹添加“/”。
.父目录。/include:父目录下的包含目录。
./.祖父目录
http://www..com/include:包括祖父目录下的目录
七。对项目绑定的依赖
一个解决方案(dsw,sln)可以创建许多辅助子项目(dsp,vcproj)。如何设置先编译依赖的辅助项目,再编译主项目?
通常,辅助子项目的OutDir配置为与主项目的OutDir相同,这样生成的lib或dll对主项目exe直接可见。
在VC6.0中:
选择“项目依赖关系”以选择要关联的项目。
在VC2005中:
在解决方案资源管理器中右击项目名称,并选择"引用"或"项目依赖项"菜单,以选择项目依赖项并设置依赖项顺序。
八。附加DLL的调试
在VC6.0中:
如果你需要调试的DLL是动态加载的(LoadLibrary),你需要在“项目设置 Debug(类别:附加DLL)”添加这个DLL文件。
九。导出makefile
在VC6.0中选择“Project Export Makefile”导出Makefile *.mak。
VC6之后不再支持Makefile输出。
参考:《VC的 MAKE文件的语法》,《vs6 IDE导出的 makefile使用方法》,《教你在 VS2005下写 MakeFile》
x代码编辑和阅读导航
Visual Studio本身完全由代码组织、编辑、分析和读取的能力来支持。
VC6.0和VC2005中的“编辑在文件中查找”支持在指定项目、工程或文件中进行关键字搜索。
VC6.0的“Tools Source Browser”提供了对导航功能的支持,如定义和引用、文件大纲、基类和成员、派生类和成员、调用图和调用者图。
VC2005右键快捷菜单支持“查找所有引用”;快捷菜单中的调用浏览器支持查看函数调用图和被调用图。类视图设置支持基类型、派生类型、继承成员和其他函数的显示。
另外,在读取代码时,我们可以使用书签来设置锚点,这样就可以实现基于书签的自定义索引导航。
下面介绍常用的编程助手插件软件和源代码层次分析工具软件。
1.Visual Assist X是一款非常不错的微软Visual Studio辅助插件,支持C/C++、C #、ASP、Visual Basic、Java、HTML等语言。可以自动识别各种关键字、系统函数、成员变量,自动给出输入提示,自动纠正大小写错误,自动标注错误等。有助于提高开发过程的自动化和开发效率。
2.Windows下的Source Insight是一个用于项目开发的程序编辑器和代码导航浏览器。它还可以显示引用树、类继承图和调用树。源码导航器,Linux下读取源码的利器,可以解决文件定位和跳转的问题。
3.Rational Rose是使用UML(统一建模语言)分析和设计面向对象软件系统的强大可视化工具。它可以分析项目需求,规划结构,生成框架代码,还可以支持从现有系统中逆向调用工程代码,生成Rose模型的功能。
逆向工程是从现有系统代码生成模型的功能。用Rational Rose分析现有代码,可以了解代码结构和数据结构,生成类层次图、数据模型图和组件图。
XI。VC6常用快捷键
Alt F7:项目设置
Ctrl/K:查找上一个/下一个预编译条件
Ctrl J/K:找到上一个/下一个预编译条件,选择这个块。
Ctrl Tab:在当前打开的文档和上次打开的文档之间切换。
o:头文件和cpp文件的交互显示
F12:转到定义
Shift F12:转到参考
Ctrl:文档标题
Ctrl Shift Home:从当前位置选择到单据头
结束:文档结束
Ctrl End:选择从当前位置到文档末尾。
Alt F8:自动格式
ctrl+F4:关闭当前文档
Ctrl Z/Alt退格键:撤消
Ctrl Shift Z/Ctrl Y:重做
Ctrl B/Alt F9:编辑断点
Ctrl F9:删除所有断点
Ctrl:定位工具栏以找到输入字段
Alt F3/Ctrl F:当前文档搜索
Ctrl F3:查找下一个
Ctrl Shift F3:查找上一个
Ctrl:替换
Ctrl]:括号匹配
Ctrl :向上滚动屏幕
Ctrl :向下滚动屏幕
Ctrl :移动到上一个单词
Ctrl :移动到最后一个单词
Shift :选择当前位置到上一个单词。
Shift :选择当前位置到下一个单词。
ctrl+back space:删除当前单词的前半部分(由光标分割)
Ctrl:删除当前单词的后半部分(被光标分割)
Ctrl:剪切当前行
删除当前行
F2:上一个书签
Shift F2:上一个书签
Alt F2:编辑书签
Ctrl+F2:添加/删除书签
Ctrl F2:清除所有书签
参考:
《VC的环境设置》
《VC6.0工程设置介绍》
《Visual C++ 6.0环境配置》
《VC 2005 解决方案的目录结构设置和管理》
《Managing Solutions, Projects, and Files》
《File Types Created for Visual C++ Projects》