Visual Studio从入门到实践

Visual Studio从入门到实践

目录vs的安装visual studio与vc++编译器各个版本对应的关系vs下常见项目的文件vs的工具设置项vs的常用项目工程设置项visual studio中的编码设置1.单字符和宽字符2.宽字符相关的数据类型3.单字符版本和宽字符版本的区分:4.工程项目编码的选择vs调试1.基本调试快捷键2.留意一些窗口3.断点的类型4.调试时传入参数如何快速分析一个项目的程序结构VS常用快捷键vs编译静态libvs编译动态dll将CMake管理的项目如何生成Visual Studio工程

vs的安装

以安装Visual Studio Community2022版本为例

在地址下载Visual studio安装向导程序

双击运行安装向导程序,勾选使用C++的桌面开发

设置安装路径

顺利的话安装完毕

visual studio与vc++编译器各个版本对应的关系

VS2010:vc10

vs2012:vc11

vs2013:vc12

vs2015:vc14

vs2017:vc15

vs2019:vc16

vs2022:vc17

vs下常见项目的文件

xxx.sln(sln全称solution)是解决方案文件,解决方案下可以有多个项目工程。查看其文件的内容可以观察这个项目由哪个版本的visual studio创建的。

vcxproj或者vcproj是工程文件,本质上是一个xml文件

vs的工具设置项

文本编辑器显示行号

由于不同的文本编辑器对tab的解释不同,可能是两个空白字符也可能是4个。因此这里设置插入空格

vs的常用项目工程设置项

设置当前项目工程的配置类型,常见的类型有exe、lib、dll

设置依赖lib的方式

在源文件中使用#pragma comment(lib, "xxx.lib")

在项目=》属性=》VC++目录=》库目录中设置:最好使用相对路径,相对路径是相对于工程文件vcxproj来说的。

在项目=》属性=》链接器=》输入=》附加依赖项中设置

设置依赖头文件:和设置依赖lib一样,使用相对路径,相对于工程文件vcxproj

vs开启多处理器编译:右击项目属性

设置当前项目工程编译后的二进制输出目录

设置当前项目工程生成中间文件的存放位置,例如.obj文件

宏定义

调试停止时自动关闭控制台

visual studio中的编码设置

1.单字符和宽字符

单字符:一个字节存储

宽字符:两个字节存储

2.宽字符相关的数据类型

wchar_t:typedef unsigned short wchar_t;

wchar_t str[] = L"test";

cout << sizeof(str) << endl; // 10

3.单字符版本和宽字符版本的区分:

#ifdef _UNICODE

#define TEXT(x) L##x // L##x=》L"x"

#else

#define TEXT(x) x

#endif

4.工程项目编码的选择

编码选择使用Unicode字符集,则表示使用宽字符

编码选择使用多字节字符集,则表示使用单字符使用1个字节存储。清楚这个很关键,在网络上收发包时需要注意

设置方式如下:

vs调试

1.基本调试快捷键

单步步过:F10

单步进入:F11

单步步出,不想执行完函数所有的语句可以从函数跳出:shift + F11

从一个函数断点跳到下一个函数断点执行:shift + F11

2.留意一些窗口

断点窗口

线程窗口

堆栈窗口

Auto 窗口

Local 窗口

内存窗口

反汇编窗口

监视窗口

输出窗口

3.断点的类型

普通断点

条件断点

数据断点

4.调试时传入参数

如何快速分析一个项目的程序结构

使用调试器将项目启动起来,然后中断下来

在线程窗口上过滤掉系统线程,逐个切换线程,查看各个线程的调用堆栈信息

了解各个线程在什么地方启动

清楚某些线程之间如何交换数据

VS常用快捷键

CTRL + g:跳到文件的指定行

vs中函数参数提示快捷键:ctrl + shift + space

代码注释:CTRL + K,CTRL + C

代码取消注释:CTRL + K,CTRL + u

运行(不调试)程序:CTRL + f5

调试运行程序:f5

逐过程:f10,不能进入函数内部

逐语句:f11,可以跳入函数内部

快速打开解决方案资源管理器:ctrl + alt + l

vs编译静态lib

现有一些源代码文件如下,需求是编译成静态lib

打开vs创建新项目,位置选择security目录所在的路径,模板类型选择lib

然后移除新建libsecurity项目下的文件。不要右击目录进行删除,这样做的话security.vcxproj中的配置项是没有清理干净的

将libsecurity项目下的四个文件复制到security目录下,并将libsecurity目录删除。目录调整结构如下

打开libsecurity.sln文件,右击头文件、源文件将需要编译的文件加进来

在项目属性页配置好输出目录、目标文件名。预编译头选择不使用

结果如下图所示,在输出目录下生成了security.lib,这个lib文件既包含声明,也包含实现

vs编译动态dll

和vs编译静态lib同理,模板类型选择dll

最终生成dll和lib文件,其中dll包含实现,lib包含声明。

将CMake管理的项目如何生成Visual Studio工程

以libuv为例

安装CMake GUI工具

打开CMake GUI工具,设置源码目录以及构建目录

配置

点击Generate

打开构建目录下的libuv.sln解决方案文件

相关推荐

惩罚基础知识——为什么、何时以及如何
365天免费观看完整版电影

惩罚基础知识——为什么、何时以及如何

📅 07-04 👁️ 4743
微商宝里怎么更新微信 微商宝是什么
365bet官方平台

微商宝里怎么更新微信 微商宝是什么

📅 07-21 👁️ 1202
amoled屏幕怎么样?一文解读它的优缺点!
365天免费观看完整版电影

amoled屏幕怎么样?一文解读它的优缺点!

📅 06-29 👁️ 961