C++学习笔记(37):重新认识C++及MSVC

0 阅读3分钟

C++规范

C++不仅是编程语言,更是一个语言标准,标准是规范,不是实现。

谁来制定和维护这个规范呢,由国际组织“国际C++标准委员会”,正式名称为ISO/IEC JTC1/SC2/WG21。 该委员会每三年更新制定一次C++标准,所以也就有了C++11、C++14、C++17、C++20这些不同的C++版本规范。

C++规范是什么?类似于文档的东西,定义了该版本的C++有哪些特性,支持哪些语法。 既然C++不仅是一个规范,那谁实现了C++规范呢?由编译器厂商实现。

什么是MSVC

MSVC 的全称是 Microsoft Visual C++。它不是一个单一的软件,而是一个由编译器、链接器、库、头文件以及集成开发环境等工具组成的工具套件,专门用于在 Windows 平台上开发 C 和 C++ 应用程序。 简单来说,它就是微软官方提供的、用于编译 C/C++ 代码的“生产工具”。

一个完整的 MSVC 套件通常包含以下核心组件:

  1. 编译器:

cl.exe:这是最核心的组件,负责将 C/C++ 源代码编译成目标文件。 它支持多种 C++ 标准(如 C++14, C++17, C++20, C++23),并以其对 Windows API 和微软生态的深度优化而闻名。

  1. 链接器: link.exe:负责将一个或多个目标文件与静态库链接起来,生成最终的可执行文件或动态链接库。

  2. 库: C/C++ 运行库: 这是最常被提及的部分,包括实现标准 C/C++ 函数(如 printf, std::vector)的代码。

发布版本: MSVCRT.dll: 较新版本的通用运行时库。

特定版本的 DLL(如 vcruntime140.dll): 与 Visual Studio 2015, 2017, 2019, 2022 等版本对应,通过 Visual C++ Redistributable 分发。

调试版本: 通常带有 d 后缀(如 MSVCRTD.dll, vcruntime140d.dll),包含了额外的调试信息,用于开发阶段。

  1. 头文件:

包含了所有标准 C/C++ 库、Windows API 以及其他微软特定库的函数和类声明。

  1. 集成开发环境:

Visual Studio:这是 MSVC 套件最主要的载体和用户界面。它提供了强大的代码编辑器、调试器、项目管理器和图形化界面设计器。

你通常是通过安装 Visual Studio 来获取完整的 MSVC 套件。

  1. 其他工具:

调试器: Visual Studio 内置的强大调试器。

生成系统: MSBuild,是 Visual Studio 的默认项目生成系统。

架构工具: 如 dumpbin.exe(用于查看二进制文件信息)、lib.exe(用于管理静态库)等。

总结

MSVC 套件是 Windows 平台上 C/C++ 开发的基石和事实标准。

  • 对于 Windows 桌面应用、游戏(特别是使用 DirectX 的)、驱动开发 等领域,MSVC 是首选。
  • 它是一个功能完备的工业级工具链,通过 Visual Studio 提供了无与伦比的开发体验。
  • 理解其组成部分(特别是编译器和运行时库)对于解决日常开发中遇到的“DLL 丢失”或链接错误等问题至关重要。