一、 框架设计
1.1 系统基本构架
1.1.1 具体说明
1.文件:新建 打开 添加 关闭 保存 等功能。
2.编辑:复制 粘贴 剪切 删除 全选 跳转等功能。
3.视图:打开具体的视图,
(1)“open with”把当前文件选择一种格式打开。
(2)“Solution Explorer”(Ctrl+Alt+L)打开资源方案解决管理器界面。在所有版本的 Visual
Studio 中,使用“解决方案资源管理器”窗格在项目中的文件之间导航。 展开 .h 或 .cpp 文件图标,查看文件中的类。 展开某个类,以查看其成员。 双击某个成员,以导航到其在文件中的定义或实现。
(3)“Class View”(Ctrl+Shite+C)把工程中的类显示在右侧界面上。类视图:使用“类视图”窗格,可查看所有文件中的命名空间和类(包括分部类)。 展开每个命名空间或类可查看其成员,而双击成员可导航到源文件中的该位置。 如果打开“代码定义”窗口,则当在类视图中选择类型时,可以查看该类型的定义或实现。
(4)“Error List”把调试过程中出现的问题显示在下面的界面上。
(5)“Output”把程序编译,运行和调试的过程显示在下面的界面上。
还包括小组总管(team explorer), 服务器资源管理器(server explorer) 。
4.设计:有添加类,显示所有文件功能。
5.建立:建立解决方案,重建解决方案,清除解决方案,主要有以下功能:
(1)“Build Solution”编译解决方案。
(2)“Rebuild Solution”重编译解决方案。
(3)“Clean Solution”删除在解决方案编译过程中产生的其他文件。
(4)“Build Project”编译当前工程。
(5)“Rebuild Project”重编译当前工程。
(6)“Clean Project”删除当前工程在编译过程中产生的其他文件。
(7)“Run Code Analysis On Solution”对解决方案进行代码分析,可找出在普通编译下无法找出的警告。
(8)“Batch Build”选择配置在x86还是在x64下调试。
(9)“Compile”只编译当前文件。
6.调试:将项目配置设置为“调试”时,按 F5 即可调试程序。 在调试期间,可通过按 F9 设置断点、按 F10 逐步执行代码、查看指定变量或寄存器的值,甚至还可在某些情况下在代码中进行更改并继续调试,而无需重新编译。
7.团队:管理连接(manage connectins)
8.工具:连接数据库(connect to database)连接服务器(connect to server)等功能。选项中主要看关于环境,环境中经常会用到的有综合(general)自动恢复(autorecover)文档(documents)文字和配色(fonts and colors)快速启动(quick launch)等功能、
9.测试:运行(run) 调试(debug) 列表(playlist)测试设置(test settings)
10.分析:性能概况表(performance profiler)运行代码分析(run code analysis)配置代码分析(configure code analysis)等功能。
11.窗口:新窗口(new window)分离(split)漂浮(float)等功能。
1.2 系统初始化
1.2.1 创建一个新的c++工程
1. 打开vs2015,点击“文件”>”新建”>”项目”。
2. 选择“visual c++”>”win32控制台应用程序”,点击“确定”。
3. 点击“下一步”。
4. 在“空项目(empty project)”这选项打勾,点击完成。
5. 在完成上面的步骤后,我们在右边的“解决方案管理器”选择“源文件”,右键选择“添加”>“新建项”,之后选择.cpp文件,点击添加。
6.这样你就可以在代码区进行代码的编写啦。这样一个新的c++工程就创建好啦。
1.3 系统快捷键
1.3.1 常见的快捷键的说明
生成解决方案 F6,生成项目Shift+F6
调试执行F5,终止调试执行Shift+F5
执行调试Ctrl+F5
切换断点F9(添加或取消断点) 断点窗口Ctrl+D,B
运行至光标处Ctrl+F10
新建解决方案:Ctrl+Shift+N,打开解决方案:Ctrl+Shift+O
保存文件Ctrl+S,保存所有文件Ctrl+Shift+S
错误列表显示Ctrl+W,Ctrl+E
输出列表显示Ctrl+W,Ctrl+O
活动窗口切换Ctrl+Tab
浏览器窗口Ctrl+W,W
工具箱Ctrl+W,Ctrl+X
全屏切换Shift+Alt+Enter项目中添加类Shift+Alt+C
项目中添加新项Ctrl+Shift+A,项目中添加现有项Shift+Alt+A
查找Ctrl+F,在文件中查找Ctrl+Shift+F,替换Ctrl+H,在文件中替换Ctrl+Shift+H
删除当前行Ctrl+Shift+L
全变为大写:Ctrl+Shift+U 全变为小写Ctrl+U
注释选中行Ctrl+K,C或Ctrl+E,C,取消注释行Ctrl+K,U或者Ctrl+E,U
转到定义F12
查看所有引用,Ctrl+K,R
按 F5 即可调试程序。 在调试期间,可通过按 F9 设置断点、按 F10 逐步执行代码
二、 系统调试
2.1 如何进行调试
2.1.1 具体说明
1. 先F5,在设置断点。在你想让程序停下来的地方,找到如图代码左侧的那个竖直栏,用鼠标点一下会生成一个红点。再重新按F5。程序就会执行到断点暂停了。
2.同时在页面下方就可以显示出具体的一些如:当前局部变量的值以及堆栈上正在调用的函数
3.这个时候就可以使用F10和F11啦。
对于F10来说,他会直接执行下一句代码,对于F11来说,他还会执行到代码函数内部。
此时就可以调试程序啦。
2.2 断点的条件
2.2.1 具体说明
1. 在源代码中设置函数断点
在源代码文件的左边距中单击;或将光标放在一行代码上,然后按 F9 键。 断点显示为左边距中的一个红点,且该代码行也会变色:在调试程序中运行此代码时,只要命中断点,就会在执行该行上的代码之前停止执行。 源代码行会变为黄色:
2. 在调用堆栈窗口中设置断点
(1)开始调试应用程序,并等待执行停止(例如,在断点处)。 打开“调用堆栈”窗口(“调试”/“窗口”/“调用堆栈”,或按“CTRL + ALT + C”)。
(2)右键单击调用函数,然后选择“断点”/“插入断点”,或使用快捷键“F9”即可。
(3)断点符号在调用堆栈的左边距中显示,位于函数调用名称旁边。
3. 在反汇编窗口中设置断点
(1)必须使调试器处于中断模式下。开始调试应用程序,并等待执行停止(例如,在断点处)。 打开“反汇编”窗口(“调试/窗口/反汇编”,或按 Ctrl + Alt + D)。
(2)在左边距中你想要执行中断操作的指令处单击,或将光标放在指令上并按“F9”键。
4. 设置数据断点(仅限本机 C++)
数据断点在存储在指定内存地址中的值更改时中断执行。 如果只读取但不更改该值,则执行不会中断。 若要设置数据断点,必须使调试器处于中断模式下。
(1)开始调试应用程序,并等待到达断点。 在“调试”菜单上,选择“新建断点”/“数据断点”(或打开“断点”窗口并选择“新建”/“数据断点”)。
(2)在“地址”框中,键入内存地址或计算结果为内存地址的表达式。 例如,键入 &avar 以在变量 avar 的内容更改时执行中断操作。
(3)在“字节计数”下拉菜单中,选择你想要调试程序监视的字节数。 例如,如果选择 4,则调试程序将监视从 &avar 开始的四个字节,并在其中任何字节的值发生更改时执行中断操作。
请记住,数据断点依赖于特定内存地址的适用性。
• 从一个调试会话转到下一个调试会话时,变量的地址会更改。 数据断点在每个调试会话结束时会被自动禁用。
• 如果在局部变量上设置数据断点,则断点在函数结束时仍处于启用状态,但内存地址不再适用,且断点的行为是不可预测的。 如果在局部变量上设置了数据断点,则应在函数结束前删除或禁用该断点。
数据断点在下列情况下无效:
• 将未经调试的进程写入内存位置
• 在两个或两个以上进程间共享内存位置
• 内存位置在内核内更新。 例如,如果内存传递给 32 位 Windows ReadFile 函数,则该内存将从内核模式进行更新,且调试程序不会中断内存写入。
6. 高级断点(条件断点(给断点设置一个条件(结束条件)))。
2.3 查看变量的变化情况
2.3.1 具体说明
在逐步完成程序时,变量值的变化状态。 在 j+= 1; 行中设置断点并启动调试。 “局部变量”和“自动”窗口中的“j”应为“0”,“i”应为“1”。 当继续执行调试(“调试”/“继续”,或工具栏上的“继续”,或按“F5”)时也可以F10不断的进行移动,可以看到 testInt 的值已更改为“1”,然后更改为“2”,依次类推。 当你厌倦了查看这些更改时,可删除断点(“调试”/“切换断点”,或者在边距中单击它),然后继续调试。 如果想要删除所有断点,请单击“调试”/“删除所有断点”或按“CTRL + SHIFT + F9”,然后在询问“是否要删除所有断点?”的对话框中单击“是”。
查看堆栈的情况:直接点ctrl+alt+c就可以查看,前提是必须先调试。
三、 工程属性(性能)
3.1 配置属性—–公共
具体内容如下:
target platform version:目标平台版本—————-实用场景显示
output directory:输出路径————————————–具体为
项目设置中可以使用的宏,常用的有:
Configuration 配置名字,通常是Debug或者Release
OutDir 链接器使用的输出目录
ProjectDir 项目目录
ProjectName 项目名字
SolutionDir 解决方案目录
TargetDir 目标输出文件所在的目录
TargetExt 目标输出的扩展名
TargetFileName 目标输出文件名,包括扩展名
TargetName 目标输出名,不包括扩展名
TargetPath 目标输出文件的全路径名
intermediate directory:中继目录即为之前设置的configuration,之前设置的是debug就是debug,设置的是release就为release.
Target Name 目标名称——————————–与项目名称相同=====project name
Target extension 延展目标——————–是指在编译之后即将生成的文件例如.exe文件
Extension to delete on clean 删除删除的扩展名————————-将一些在编译过程中产生的已经.xx扩展名删除
Build log file 建立日志文件
platform toolset 工具集———————–指定你现在所处的环境的工具集
enable managed incremental build 使管理增量构建
project defaults 项目默认设置
configuration type 配置类型
use of mfc使用mfc 使用标准的window库—————选项还有在静态库中使用MFC 和在动态链接库中使用MFC都需要专门进行配置。
use unicode character set 使用unicode字符集
common language runtime support 公共语言运行时支持—————无
whole program optimization 程序优化——————–无
3.2 C++公共配置
具体内容如下:
additional include directories 附加包含目录
additional #using directories 额外的#使用目录
debug information format 调试信息格式———— program database for edit and continue编辑和继续的程序数据库
common language runtime support 公共语言运行时支持—————无
consume windows runtime extension 使用windows运行时扩展
suppress startup banner 抑制启动横幅
sdl checks 自我检测
四、 关于编译链接
4.1 编译链接总框图
假如新建一个文件,名字叫work2,将其分别进行debug编译和release编译,可得到以下文件,关于文件类型以及基本内容做出以下详细介绍。
编译链接生成文件,会在解决方案文件夹和工程文件夹下都生成DEBUG子文件夹或者RELEASE子文件夹,在解决方案文件夹中包含有应用程序的可执行文件,在工程文件夹中包含有编译链接时产生的中间文件。下图可以更好的理解
对于各个文件的具体描述如下:
1.Debug版本的可执行文件包含了用于调试的信息和代码。
在debug文件夹中包含应用程序和.ilk文件和.pdb文件,.ilk文件。
(1).ilk文件是指当选定渐增型编译连接时,连接器自动生成ilk文件,用来记录连接信息。
(2).pdb文件全称是program database也就是指程序数据库文件,用来记录调试信息,没有它,程序无法进行正常的调试。
2.Release版本的可执行文件中不包含调试信息,不能调试,文件较小。
在release文件夹中包含应用程序和.iobj文件和.ipdb文件和.pdb文件。
(1).iobj文件是用来保存每个模块的编译结果的,
3. .vcxproj文件,是mfc生成的工程文件,它包含当前工程的设置和工程所包含的文件等信息。
4..db文件这是大的文件,它是数据库数据存放文件。
5.sln文件是一个文本文件也为解决方案文件。通过为环境提供对项目、项目项和解决方案项在磁盘上位置的引用,可将它们组织到解决方案中。比如是生成Debug模式,还是Release模式。
至于应用程序就是使他在不依赖环境的条件下可以正常运行。
相关文章
- VS 程序自动更新——(方案一)
- Deepin系统下配置MySQL的远程访问(小白入门)
- VS+ArcEngine10.2安装配置
- vs连接mysql数据库操作步骤
- LINK : fatal error LNK1104: 无法打开文件“libmysql.lib”">(转载)VS 中引用连接mysql数据库失败 报错:">LINK : fatal error LNK1104: 无法打开文件“libmysql.lib”
- VS附加Revit时闪退程序
- 十分钟入门Processon思维导图
- less 入门1
- C#掌上医院预约挂号支付系统源码VS2019+SqlServer 2012微信公众号 支付宝 预约挂号平台源码
- vs配置mysql数据库时,mysql.data、mysql.data.entity、EntityFramework的安装错误问题