修改命令启动调试
如果断点设置在了某个程序的入口,不方便在程序完全启动后附加调试,则可以修改属性页中调试页签下的命令选项,将其修改成某个exe,则可以先打断点然后将该项目设置为启动项目,随后执行调试启动即可
项目属性页当前所在目录
像属性中常规页签下的输出目录、中间目录等路径,是以该项目的工程文件所在的路径作为当前目录后的相对路径,所谓工程文件也就是以该项目命名.vcxproj文件。
vcxproj文件:项目工程文件,描述了工程的各项属性,修改该文件后再重新build时vs会重新build该工程
vcxproj.filter文件:可理解为视图文件,定义了工程在VS中打开后的虚拟目录结构,修改该文件后重新build时vs不会重新build工程
vcxproj.user文件:是本地化用户配置,允许多个用户使用自己喜好的方式配置这个项目(例如打开项目时候窗体位置等与项目内容无关的配置)
宏配置
属性页中常能看到以$(xxxx)来作为路径或者选项值,这就是宏,可以在编辑页签中查看宏的定义,对应下面也会显示出宏的真实含义,方便填写与使用
VC++目录(全局)
可执行目录:在其中搜索可执行文件的目录,path对应于环境变量
包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录
库目录:寻找.lib文件的搜索目录
C/C++(当前项目)
附加包含目录:寻找#include<xxxx.h>中的xxxx.h的搜索目录(每一项对应一个文件夹XXXX,文件夹中包含了编译时所需的头文件,使用时直接#include<XXXX>即可)
链接器
附加库目录:寻找.lib文件的搜索目录
附加依赖项:lib库(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码)
子系统:子系统的选择会影响链接器将选择的入口点符号(或入口函数)
选项
- 未设置 -未设置子系统。
- Console -Win32 字符模式应用程序。 操作系统为控制台应用程序提供控制台。 如果定义了 main 或 wmain,则控制台为默认值。
- Windows应用程序不需要控制台,可能是因为它创建自己的 Windows 以便与用户交互。 如果定义了 WinMain 或 wWinMain,则默认情况下为 WINDOWS。
- Windows NT 的本机-设备驱动程序。 如果指定了/DRIVER: WDM,则默认值为 NATIVE。
- Efi 应用程序 -Efi 应用程序。
- Efi 启动服务驱动 程序-Efi 启动服务驱动程序。
- EFI ROM -EFI ROM。
- Efi 运行时 -Efi 运行时。
- Posix -与 Windows NT 中的 posix 子系统一起运行的应用程序。
常见问题
1.包含目录和附加包含目录(库目录和附加库目录)的区别:
包含目录:修改了系统的include宏的值,是全局的;
附加包含目录:用于当前项目,对其他项目没有影响。
(库目录和附加库目录的区别同上)
2.可知包含目录和附加包含目录(库目录和附加库目录)的区别主要在于全局还是当前,那么当需要对某工程添加这些目录时,通常情况下,都是在附加包含目录和附加库目录中添加的。
3. 要使用一个库,除了要include其头文件以外(附加包含目录),还要在链接过程中把lib加进去(附加库目录、附加依赖项)。
4.添加方法:
附加包含目录---添加工程的头文件目录:
项目->属性->配置属性->C/C++->常规->附加包含目录:加上头文件的存放目录;
附加库目录---添加文件引用的lib静态库路径:
项目->属性->配置属性->链接器->常规->附加库目录:加上lib文件的存放目录;
附加依赖项---添加工程引用的lib文件名:
项目->属性->配置属性->链接器->输入->附加依赖项:加上lib文件名。
5.当需要向项目中添加.dll动态链接库时,直接将需要添加的.dll文件拖拽到项目生成的.exe所在的文件夹下即可(项目->属性->配置属性->常规->输出目录,可以看到.exe生成在哪个目录下)。
设置工程项目配置
一般设置为一些通用的配置,设置一次后,之后本地其他项目工程都可以直接继承配置,而不用每次设置。
视图----其他窗口----属性管理器,双击Debug | Win32后即可进行设置,设置后对所有工程有效