新建解决方案、项目、编译执行

首先清楚解决方案和项目的关系:

 一个解决方案可以包含多个项目文件

如何新建项目:

 点击文件——新建——项目,接下来,以创建windows控制台应用程序为例,点击控制台应用,并点击下一步,

 接下来,例如,我们要创建一个名为Chatroom的解决方案,解决方案中一个项目叫做Client的项目。

 创建成功后的解决方案资源管理器视图如下:

 如果还想要在这个解决方案中再添加项目的话,就右击解决方案‘Chatroom’,选择添加然后新建项目。

 

然后同样选择控制台应用点击下一步,输入项目的名称,我们这里又创建了一个名为server的项目。 

 

两个项目都创建完成后的解决方案管理器的视图如下:

 再来看一下文件夹的情况:

 其中,后缀名是.sln的文件就是解决方案文件,

 

 后缀名是.vcxproj就是工程文件。

如果我们关闭了这个解决方案,下次再想打开这个文件时,只需要点击sln文件即可。

 

 打开后,我们再看一下解决方案管理器的文件结构:可以发现两个项目中已经有源文件案例。

 接下来生成项目,例如我们编写好第一个项目Client中的源文件代码后,我们右击第一个项目的名称Client——点击生成。

可以在下面的控制台看出文件的编译过程,含义就是它帮助我们编译了Client.cpp文件,帮助我们生成了Client.exe文件。

 

 如果我们想一键生成解决方案下面所有源文件那么直接在解决方案管理器右击解决方案的名称选择重新生成解决方案就好了。

visual studio窗口布局介绍

添加类的方式:

右击需要添加类的项目——找到添加按钮——然后点击"类" 

在弹出的窗口中输入类名,点击确定后会在相应的项目文件夹下的头文件和源文件中自动添加了CUdp.h和CUdp.cpp文件。

 相应的视图变成了下面这样:可以看到在类视图Client项目下多了两个类CTcp(之前新建的)和CUdp类,在资源管理器中Client项目下头文件中多了两个头文件CTcp.h和CUdp.h,在源文件下多了CTcp.cpp和CUdp.cpp。

打开资源视图 (资源视图一般做msc开发或者窗口程序开发用的比较多)

 

 给项目添加资源的方法:右击相应的项目,具体如下:

例如:我们这里添加了一个 位图资源:选中Bitmap后,点击新建。

 

 

 输出、错误视图:

输出视图:

 错误视图: 当我们把visual studio窗口弄的乱七八糟时,可以点击重置窗口布局,可以把窗口还原到默认的布局。

也可以点击窗口——保存窗口布局(保存我们自己布置喜欢的窗口布局) 

 下次想用我们自己设计保存的窗口时,直接点击应用窗口布局进行选择即可:

 设置vs代码字体、颜色和行号等:

点击在菜单栏上的工具——选项按钮 

 在选项中的可以调整字体大小颜色等

设置中还有一些其他的东西,比如说针对c++和c的一些设置,如下所示: 

 

 项目中新建文件、筛选器和文件夹:

 我们点击新建项是表示新建一个文件,点击现有项表示导入一个文件。

比如我们要新建一个头文件(.h):

可以看到在资源管理器中的头文件中多了TCP.h文件。 

 

 如何导入一个第三方文件

(准备工作:我现在在桌面上建立一个third.cpp文件)

源码如下:

#include<iostream>
int main()
{
	using namespace std;
	cout << "hello,world";
	return 0;
}

右击项目名称——添加——现有项 

 新建和添加类或者其他类型的文件操作同上,不过多赘述 。

 新建筛选器:

筛选器的功能:在开发大型文件时,源文件很多,为了方便管理,添加筛选器对其进行按照功能分类管理。

在新建项目时vs已经默认为我们新建了3个筛选器:(头文件、源文件、资源文件)

自己新建筛选器的方法:在需要添加筛选器的项目或者文件夹上右击——添加——新建筛选器,方法如下:

 

 示例,比如说我们在项目Client下添加一个网络模块:

 注意:筛选器并不对应真是的物理存储结构,仅仅是逻辑上的分类:也就是说在vs项目下新建的那个筛选器并不是文件夹,你打开文件的根目录,里面并没没有小的文件夹。

 其中.vcxproj.filters文件就是专门记录我们在vs中筛选器的情况。

 .vcxproj.filters中的内容:

 

 上面说了筛选器其实并不对应我们真实的目录文件夹,如果我们希望项目分类和真实目录保存一致,那么操作如下:

 点击项目——显示所有文件

 点击后就显示了我们解决方案文件下的所有文件夹及其文件:

 这时我们再新建文件夹:注意这时选择添加选项,后面出现的是新建文件夹,而不是新建筛选器了。

 示例:我们这里新建了一个名为网络相关的文件夹,它在项目的根目录上是有所体现的:

 此时,如果我们想要回到筛选器选项只需要重复上面的操作:

点击显示所有文件 

 此时不显示项目下的文件夹,然后点击添加显示的是新建筛选器,而不是新建文件夹。

设置断点调试等

(1)设置断点的方法

 (2)设置条件断点:

下面的示例演示设置循环的次数(演示当i ==99时sum等于多少)不对断点进行设置的话,就需要不断地手动按F5进行调试,按到第99次。将鼠标放在断点上点击设置。

 勾选条件,然后选择条件表达式,true,i==99。

 设置完成后将鼠标放在断点上会有所显示:

 点击开始菜单栏中的调试——开始调试,会出现下面的窗口,上面显示这当i= 99时,sum是4851

 (3)断点窗口:

调出断点窗口的方法:点击调试——窗口——断点 。

就可以显示当前我们设置的所有断点: 

 

调试的快捷键:其中F10不会进入到函数中,F11是会进入到函数中。

 调试的技巧(1)

另外,在程序上的调试进程是可以手动直接跳转,方法时长按那个黄色的箭头,拖拽它到你想要调试的地方。 例如我现在把它拖到test()函数那里。

 调试技巧(2)——查看或修改变量的值

可以在自动窗口上修改变量的值,比如说我们现在修改i的值,修改为0,这种方法对于我们测试指定的值非常有用。

 代码添加书签、快速查找、定位

(1)添加书签:菜单栏中的编辑——书签—— 切换书签,点一下就是添加书签,再点一下就是删除了。

示例:比如说我们想要在上述程序中,在test函数处设置一个书签,就想光标定在test()语句上,然后执行上述操作变可添加书签。

 书签的作用:就是在多文件项目中,我们可以迅速跳转到我们标记书签的位置,也就是快速查找和定位,这样我们可以在比较重要的地方加一个书签。比如当我们点击上衣书签按钮时,软件会自动跳转到上一个我们标记书签的文件处。

 书签窗口:

 点击书签窗口会列举出来所有的书签窗口:

 F12转到定义:

示例:比如sum变量,我们忘记了它在哪里定义的,此时只需要将光标放在上面右击,然后点击转到定义即可跳转到定义处。

 快速查找词:

将光标停留在需要查找的词上面:

按快捷键ctrl+F3可以跳转到下一个相同的词;

按快捷键shift+F3可以往上查找。

查看所有引用

 会显示所有引用了sum的地方

 快速查找:

点击图片上的按钮:

 在这里,可以输入想要查看和替换的东西(其中包括搜索的范围等)

 Debug与Release项目输出设置

Debug我们称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序。在Debug\目录中有两个文件,除了生成的.exe和.dll文件外,还有.pdb文件记录了代码中的断点调试信息。

Release称为发布版本,不包含调试信息,并对代码进行了优化,使得程序在代码大小和运行速度上都是最优的,Release目录下生成.exe和.dll文件。

 debug版:

 生成Release版本的方法:

 

 在生成的Release文件中依然有pdb文件

 如何不让release不生成pdb文件:(在属性页中进行如下设置)

 再将原来release文件夹下的文件全部删除,在切换到release版本下重新生成解决方案,可以看到release文件夹下没有pdb文件了。

 可以看到Client项目在Release文件夹下面已经没有pdb文件了。

 指定项目生成exe目录:

右击项目,点击属性

 (1)Release版本的属性页,输出目录的含义

 含义就是如下图,一 一对应。

 (2)Debug版本地属性页,输出目录的含义

 

 (3)修改目标文件的名称(也就生成的.exe文件的名称),默认情况下就是项目名称(projectName)

 示例:这里我们在dubug版本下将目标文件名修改成myClient 

 

 返回后,操作如下:

 

 

 警告:属性中的很多东西都可以改,但是不建议改,一般还是使用默认的名称或者路径。

 还有一个地方也可以修改文件的输出目录

 (在此修改输出目录路径更为准确,当在链接器——常规——输出文件修改路径和目标文件名称和在常规——输出目录中修改输出目录和文件名时以在链接器中为准):

示例:

我们在常规中使用默认的输出目录,并且将目标文件名修改为MyClent

 在链接器——常规——输出目录——编辑中修改其路径和目标文件名为桌面目录下\xxx.exe:

 最终会在桌面上生成xxx.exe文件,以链接器中为最终决定的。

 

 设置头文件包含目录和库目录

第一步:设置头文件目录

 示例:比如我们现在在项目client文件夹下新建了一个第三方的文件夹,并且在其文件夹内部新建了一个名为third.h的头文件,在项目Client的主函数文件中Client.cpp中添加了该头文件。

可以上图看到添加头文件third.h的地方有错误提示,因为此时并未将在属性中执行头文件的目录。(这里需要注意的是一定要指定到包含头文件的最后一层文件夹,否则无效)

下面我们将头文件目录包添加到属性中,如下图所示:

 添加完成够,可以看到在Client.cpp文件中没有提示报错信息了。

 附加库目录:寻找.lib文件的搜索目录:(添加的方案如下:属性——链接器——常规——附加库目录)

 附加依赖项:添加工程引用的lib文件名(也可以#pragma comment (lib, "ws2_32.lib")在代码中指定)

添加方式是:在属性——链接器——输入——附加依赖项——用分号分隔各个依赖项

 

 vs快速开发常用技巧:

注释:ctrl +k +c;

取消注释:ctrl + k + u;

当光标停留在某行

快捷键:ctrl+c,ctrl+x,ctrl+v 复制、剪切、粘贴整行。

快捷键:ctrl+L 可以删除整行;

快捷键:shift+Alt+T 交换上下两行。

 当你在网上拷贝粘贴一段代码之后,代码的格式很乱时:

格式化部分代码:选中代码 ——ctrl+k,f;

格式化整个文档:编辑——高级——设置文档的格式。或者ctrl+D;

 当错误列表有错误或者警告提示时,可以双击这个错误或者提示,就可以跳转到错误或者警告的语句前。

 

 

 

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐