Visual Studio 的一些理解

本人使用的是2015版的,是的2023了还在用2015版的 但没关系,触类旁通嘛

1.新建工程

点击新建项目 输入你的项目名称,换一下存储地址就行,这里选择的是visual c++空项目,可以看到还有一些其他选项,会有一些模板头啥的 其他的搜索了一下给大家做个参考哈 1、win32应用程序是指窗口类的,像QQ之类的,有图形化界面,而控制台是指运行在黑框下的,像cmd之类的; 2、win32控制台项目指在32位Windows命令提示符(即所谓的dos)环境下运行的应用程序… win32项目指运行于32位Windows操作系统中的应用程序…包括win32控制台项目… 3. MFC(微软基础类库)是专门为windows设计的一个用于开发图形用户界面的类库。

然后你就可以在这个界面,右键新建文件,在源文件和头文件里面添加自己的各种代码,这里我选择建立源文件main.cpp

在里面写一下代码,就可以成功运行了,如下图所示,注意代码里面的

system("pause");

是为了固定窗口输出的结果的,请按任意键继续。。。就是它的结果,不然你的输出就会像流星一样刷一下不见。。。。

2. 理解文件格式

新建后,你会在文件夹里看到这样的格式(重头戏)

aaa.sln是解决方案,一个解决方案一个文件夹,解决方案里面可以有很多项目 而这里的sdf,抄了一段,给大家理解一下 SQL Server Compact Edition Database File (.sdf)文件,是工程的信息保存成了数据库文件,如果你没有参加大型的团队项目,不涉及到高深的调试过程,这个文件对于你来说没什么用了,可以放心的删除,如果你后来又需要这个文件了,简单,打开工程里的.sln文件重新编译链接就ok了。(copy) 那个opensdf,你关了visual studio窗口就不见了

而项目就放在aaa文件夹下,表示为aaa.vcxproj

筛选器文件 .vcxproj.filters(我查了一下官方文档,它指定哪些文件类型进入解决方案资源管理器中的逻辑文件夹。 大致意思是用来描述.h、.cpp、其他后缀文件放置位置的一个东西,如下图),这个层次关系就由这个东西控制

【注意】还有一个点要注意,在考虑数据放入的文件夹层次的时候,一般以项目文件aaa.vcxproj 所在文件夹,作为当前文件夹参考,比如下方图示的一个路径

就是我运行这个的结果

你下拉运行环境,这里会有不同平台的选项,运行不同环境后,文件夹对应会出现不同环境的.exe x86会放在第一层(跟sln一个文件夹),x64的会用一个x64文件夹,包含debug和release放置

这里区别一下,windows x64和x86 x64其实就是64位,x86其实就是32位,在口语中我们说32位会多于x86。(copy)32位系统最多只能发挥4G内存的效用,如果电脑安装了大于4G的内存,32位的操作系统是不能更好的利用大于4G的那部分内存的效用的,所以会造成资源浪费。(copy) 所以肯定用x64好(非copy的个人意见)

而Debug顾名思义就是调试,一般面向开发人员的,其中具有调试参数等东西; Release是项目上线后的版本,面向的是用户,相对Debug,它生成的可执行文件会相对小一点。因此他们俩的配置是不同的,一般的库也分Debug和Release(头文件不区分Debug和Release)

小tip:用记事本打开aaa.sln 会出现你运行过所有状态,还会有你解决方案的名称和项目名称,万一你改名时出现找不到项目的情况,请到这里来改!

3 配置文件

当你的项目不只是一个简单的hello world 涉及到用第三方的库的时候,俗称sdk 你就不得不学会这一项技能,配置文件!(后面学linux的时候你会感觉啥配置都cmake的快乐,但在一开始的时候谁没掉过这个配置的坑呢,特别是windows下,当然应该也有windows版的cmake,反正我还没试过,,,) 所以聊作纪念吧,自己摸爬滚打的结果

一开始你会遇到它是因为报错哈哈哈 比如:自信满满的把所需要的cpp和h加进项目,然后被打脸 找不到头文件了(一般是包含目录的问题 无法打开输入文件xx.lib,或者会说找不到xx符号 (一般是附加库目录的问题 找不到dll了 (一般是环境变量的问题 这里推荐一个神器,everything ,顾名思义,在你下载了库之后,比windows自带的查找 更快找到你想要的文件和路径 下载链接everything 配置之前你需要了解的

vs项目中的添加包含目录(.h)可以通过属性管理器、项目的属性页【C/C++】-【常规】-【包含附加目录】、项目的属性页【VC++目录】-【包含目录】三种方式 vs项目中的添加附加依赖目录(.lib)可以通过属性管理器、项目的属性页【链接器】-【常规】-【附加库目录】、项目的属性页【VC++目录】-【库目录】三种方式 其中值得注意的是 (通过属性管理器添加的作用于此电脑上的所有vs项目,后两种效果相同,只作用于本项目.配置为vs【Microslft.Cpp.x64.user】属性页即可同一台电脑只配置一次,打开不同程序时只要系统位数(x64)、编译状态(debug/release)不变即可不用重新配置。即属性管理器)

属性管理器【视图】-【其他窗口】-【其他窗口】打开 也可以通过左边最下方的切换窗口

而当然你也可以选择自己创造一个.props属性表 文件保存你的额外配置,然后再下一次用相同配置的时候就很方便 (不知道的时候,说多了都是泪,每次都重配,呵)

如下图,右键想要配置的环境,环境千万别配错,,,这也是个坑,有些时候你配的relese 然后用debug环境运行,会怀疑一下人生——为啥还是报错 简单改一下你名字就可以开始配置这个属性表了,双击一下属性表,进行操作.

复用 的时候点击这个第二个,一般会跳出来你新建好的属性表路径,添加进去就好。

正式配置

这里以opencv4配置为例:

配置vs包含目录

点开就是刚刚文字描述的,按照【】就可以一步步添加了 举个简单小例子,这里包含目录里面放置的就是你想要添加的头文件路径,一般最后结尾是include,当然也不绝对,我这边使用opencv的时候就要添加如下两个路径,一般这个路径里面存放着你需要用到的.h 一般都在你下载第三方库的源码里面。 D:\OpenCV4\opencv\build\include\opencv2 D:\OpenCV4\opencv\build\include

配置库目录

VC++的【库目录】里添加: D:\OpenCV4\opencv\build\x64\vc14\lib 注意 …\vc14\指的是在visual studio2015中使用,如果使用的是visual studio2017,就要选…\vc15\。选择错误会出现版本不兼容的问题。(其他第三方库不知道会不会有相似的问题,这里可以做一个提醒)

配置vs链接器

OpenCV4.1简化了库文件中lib文件数目,打开库目录路径lib文件只有两个,选择一个就行。 注意:名字含d的在debug模式下使用,名字不含d的在release模式下使用,若链接文件错误无法正常运行,若想运行release版本,一定不能添加含d的lib文件,否则会编译报错。 debug模式,在【链接器】-【输入】-【附加依赖项】里添加:

opencv_world440d.lib

release模式,则添加:

opencv_world440.lib

还需要注意,这里要看用的版本是什么,如果是OpenCV4.4,所以是440,其他版本依此来推测,这个版本号数字会略有区别,建议先打开库目录路径看一下再配置。 注意:(别人)实测发现【Microslft.Cpp.x64.user】是唯一的,Debug|x64和Release|x64下拉菜单点开的【Microslft.Cpp.x64.user】是同一个,所以切换debug/release版本时必须手动更改 链接文件名字。

配置系统路径

【我的电脑】-【属性】-【高级系统设置】 在【系统属性】窗口选择【环境变量】,在系统变量【Path】后添加: D:\OpenCV4\opencv\build\x64\vc14\bin 这一步也很重要,这个bin文件里面很多dll ,添加了后记得重启生效

好的至此,基本问题都可以解决了。有新的内容再补充!

文章链接

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。