Открыть сервисСервис

Microsoft Visual C++

Microsoft Visual C++ — это инструментарий для разработки программного обеспечения на языках C и C++ от корпорации Microsoft, входящий в состав интегрированной среды разработки (IDE) Visual Studio. Включает компилятор MSVC (Microsoft Visual C++ Compiler), редактор кода, отладчик, библиотеки времени выполнения и средства сборки проектов. Компоненты Visual C++ распространяются как в составе Visual Studio, так и отдельно в виде редистрибутивов (Redistributable) и пакетов Build Tools.

История

Первая версия Microsoft C (MS C) была выпущена в 1984 году для MS-DOS. В 1992 году появился Microsoft Visual C++ 1.0 — первый продукт под новым именем, ориентированный на разработку под Windows 3.1. Исторически важной стала версия Visual C++ 6.0 (1998), широко использовавшаяся в российской образовательной и корпоративной среде и долгое время остававшаяся стандартом де-факто.

В 2002 году вышла Visual Studio .NET с поддержкой управляемого кода .NET и компилятором, способным генерировать IL-код. В 2010 году появился Visual C++ 2010 с поддержкой стандарта C++0x и нового компилятора. Начиная с Visual Studio 2017 версии продукта стали обозначаться номерами вроде «15.x», а с 2019 года — «16.x»; с 2022 года используется шестизначная нумерация «17.x».

Состав

Стандартная поставка Visual C++ включает:

  • Компилятор MSVC — транслирующий C/C++ код в машинный код для платформ Windows (x86, x64, ARM, ARM64).
  • Сборщик LINK — объединяющий объектные файлы и библиотеки в исполняемые файлы и DLL.
  • Библиотеки времени выполнения — CRT (C Runtime Library), STL (Standard Template Library), MFC (Microsoft Foundation Class), ATL (Active Template Library).
  • Отладчик — интегрированный с Visual Studio, поддерживает отладку кода, управляемого и неуправляемого.
  • Средства сборки — MSBuild, утилиты nmake, cl.exe.

Стандарты и совместимость

Компилятор MSVC поддерживает стандарты C и C++ в зависимости от версии: C++14, C++17, C++20 и частично C++23. Поддержка ведётся через ключи /std:c++14, /std:c++17, /std:c++20. Исторически MSVC считался менее строгим в соблюдении стандартов по сравнению с GCC и Clang, однако начиная с Visual Studio 2017 поддержка стандартов была существенно расширена.

Редистрибутивы

Чтобы запускать программы, скомпилированные MSVC, на компьютере без установленного Visual Studio, используются пакеты Microsoft Visual C++ Redistributable. Они содержат библиотеки времени выполнения (vcruntime140.dll, msvcp140.dll и др.) и распространяются бесплатно. На компьютерах пользователей часто установлено несколько таких пакетов — по одному на каждую версию компилятора, с которой были собраны установленные программы. Это распространённая причина появления многочисленных записей «Microsoft Visual C++ 20xx Redistributable» в списке установленных программ Windows.

Применение

Visual C++ применяется для разработки:

  • настольных приложений для Windows;
  • игр (многие движки, включая Unreal Engine, поддерживают MSVC как основной компилятор);
  • системных и драйверных компонентов;
  • приложений с использованием MFC и ATL;
  • библиотек, используемых из других языков (C, C++, C#, Python через ctypes и др.).

В России продукт широко используется в образовательных учреждениях, включая курс программирования на C++, и в корпоративной разработке под Windows.

Альтернативы

Основными альтернативами MSVC являются GCC (GNU Compiler Collection) и Clang/LLVM. Кроссплатформенные инструменты сборки (CMake, Meson) обычно поддерживают MSVC наравне с GCC и Clang. В среде Linux и macOS MSVC не используется — там применяются нативные компиляторы.

Интересные факты

  • Компилятор MSVC исторически известен кодом ошибки C2065 (undeclared identifier) и обширной базой сообщений об ошибках, используемой в обучении.
  • Visual C++ 6.0 до сих пор встречается в легаси-системах, несмотря на прекращение официальной поддержки.
  • Средства Build Tools Visual Studio распространяются бесплатно и могут использоваться в непрерывной интеграции (CI) без лицензии на саму IDE.

Источники

  • Официальная документация Microsoft по Visual C++
  • История компиляторов Microsoft C/C++
  • Справочник по стандартам C++ и поддержке в MSVC
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru