C++开发人脸性别识别教程(2)——VisualStudio初探

2024-08-28 18:18

本文主要是介绍C++开发人脸性别识别教程(2)——VisualStudio初探,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  上一篇教程中已经大致描述了项目的最终效果,考虑到读者中有很多零基础的同学,我们这里并不急于进行代码的编写,而是先简要介绍下所用到的开发工具——VisualStudio2012。

  VisualStudio是微软推出的非常强大的开发软件,在C++开发领域可谓占据了半壁江山。VisualStudio经典版本主要有2005、2008、2010、2012、2013、2015等版本。2005和2008现在已经稍显过时,现在应用已经不太广泛。目前2010、2012、2013是目前较为流行的版本,免费版本也相对容易找到。2015是最新发布的版本,文件较大(大约5个G),对硬件要求相对苛刻一点,并且不容易找到免费版本。这里推荐使用VS2012版本,原因有两个:一是VS2012版本还不算过时,而且界面相比08、10版本更为友好;二是VS2012支持一个重要的OpenCv插件:ImageWatch。

  一、启动VS2012

  这里假设已经安装了VS2012并破解完成,相关的安装教程网上有很多资源,大家如果有疑问的话可以在下方留言,有必要的话我会上传相关的安装文件以及破解方法。

双击快捷方式(开始菜单栏、桌面快捷方式、任务栏中的快速启动图标均可),首次启动会提示选择编程语言种类,这里选择C++即可(可能需要几分钟的初始化时间)。

  接下来进入开始界面:

 

  二、基本设置 

  1、主题设置

  首先,VS2012默认提供两种主题,深色和浅色。通过“工具—>选项”主菜单命令打开设置对话框,展开“环境”节点,在“常规”设置界面中进行设置:

  2、窗口布局

  观察当前VS所显示的窗口布局,推荐大家将VS的界面调整为这种格式,方便编写程序。

  首先在窗口的右侧显示三个编辑窗口,分别为解决方案资源管理器、类视图、资源视图:

 

  这三个窗口将以三种模式来显示当前的工程结构,这里我们打开工程文件,对这三个窗口进行详细介绍。Ctrl+O,弹出打开工程对话框,选择对应的project文件:

  在解决方案管理器窗口中,将以头文件和源文件的形式显示工程目录:

 

  在类视图窗口中,将显示当前程序工程中的所有类结构:

 

  在资源视图窗口中,显示当前工程所用到的所有资源,包括图片、对话框、字符串表等:

 

  一般在创建、添加文件时使用解决方案资源管理器;在编写代码(尤其是大型的、面向对象的代码工程)使用类视图,方便定位相应的类以及成员函数;在资源视图中完成MFC界面设置以及相关资源的查找引用等。

  3、基本操作

  这里简单的介绍一些VS2012在编写代码过程中的常用操作,这里主要介绍快捷键,当然相应的功能也可以通过主菜单栏的菜单命令和快捷菜单命令来完成。

  (1)拼写提示

  VS一个非常让人舒服的功能就是在敲代码时提供了拼写提示的功能,这也是高级IDE必备的功能之一,在你输入代码的过程中,VS会自动根据你当前输入的情况给出提示信息:

  (2)编译链接

  按下F7,VS会对当前代码进行编译并链接相关库文件。

  (3)调试

  如果编译顺利通过,就可以进行调试。在调试之前需要先设置断点(当然不设置也可以)。VS设置断点的方法有三种:菜单、快捷键、鼠标单击左槽。这里推荐使用快捷键。将光标定位在指定行,按下F9设置断点:

  这里介绍一个取消所有断点的快捷键组合:ctrl+shift+F9。

  断点设置完成后,按下F5,程序开始调试,并在命中断点后暂时挂起。

  (4)运行

  调试通过后,按下ctrl+F5运行程序即可。

  三、注意事项

  1、MFC相关知识

  这个项目在开发过程中用到了大量的MFC编程,这在以后使用过程中在详细介绍,需要说的是MFC空间的操作都通过工具箱窗口进行,这里通过“视图—>工具箱”命令调出工具箱窗口,并将其置于窗口右侧即可:

 

  2、调试器的版本问题

  这里我的电脑是用的64位,而VS在调试是默认为win32:

 

  考虑到我们之后要配置的opencv是64位的,一些底层的编译环境(如g++等)也是64位的,因此这里建议换成64位的调试器:单击“Win32”右侧的下拉箭头,选择配置管理器:

 

  在弹出的窗口中,单击下拉箭头,选择新建:

  在弹出窗口中选择X64:

 

  注意左侧生成栏下面的对话框需要勾选。单击确定,关闭当前窗口。此时再次单击“Win32”右侧的下拉箭头,发现其中多了一个X64的选项,选中即可。

  四、总结

  这篇教程总结了VS2012的一些基本操作和注意事项,帮助之前零基础的朋友快速入门,更多有关VS2012的相关配置大家可以参考网上资源。在下一篇教程中我们将会简要介绍OpenCv在VS2012中的配置以及插件ImageWatch的使用。

这篇关于C++开发人脸性别识别教程(2)——VisualStudio初探的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115520

相关文章

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

C++11委托构造函数和继承构造函数的实现

《C++11委托构造函数和继承构造函数的实现》C++引入了委托构造函数和继承构造函数这两个重要的特性,本文主要介绍了C++11委托构造函数和继承构造函数的实现,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、委托构造函数1.1 委托构造函数的定义与作用1.2 委托构造函数的语法1.3 委托构造函

C++11作用域枚举(Scoped Enums)的实现示例

《C++11作用域枚举(ScopedEnums)的实现示例》枚举类型是一种非常实用的工具,C++11标准引入了作用域枚举,也称为强类型枚举,本文主要介绍了C++11作用域枚举(ScopedEnums... 目录一、引言二、传统枚举类型的局限性2.1 命名空间污染2.2 整型提升问题2.3 类型转换问题三、C

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加