Microsoft Visual C ++ - Microsoft Visual C++

Visual C ++
Visual C ++ Icon.png
Разработчики)Microsoft
изначальный выпускФевраль 1993 г.; 27 лет назад (1993-02)[1]
Стабильный выпуск
14.28.29333
Написано вC ++[2]
Операционная системаWindows
ПлатформаIA-32, x86-64 и РУКА
Доступно вАнглийский, китайский (упрощенный и традиционный), чешский, французский, немецкий, итальянский, японский, корейский, польский, португальский (бразильский), русский, испанский, турецкий
ТипIDE
ЛицензияПробная версия и бесплатное ПО
Интернет сайтдокументы.microsoft.com/ en-us/ cpp/

Microsoft Visual C ++ (MSVC) является компилятором из Microsoft для C, C ++, и C ++ / CLI языки программирования. MSVC - это проприетарное программное обеспечение; изначально это был отдельный продукт, но позже он стал частью Visual Studio и доступен в обоих пробное ПО и бесплатное ПО формы. В нем есть инструменты для развивающийся и отладка Код C ++, особенно код, написанный для Windows API, DirectX и .СЕТЬ.

Много Приложения требовать распространяемый Пакеты библиотеки времени выполнения Visual C ++ для правильной работы. Эти пакеты часто устанавливаются независимо от приложений, что позволяет нескольким приложениям использовать пакет, при этом необходимо установить его только один раз. Эти распространяемые пакеты Visual C ++ и пакеты среды выполнения в основном устанавливаются для стандартных библиотеки что используют многие приложения.[3]

История

Предшественник Visual C ++ назывался Microsoft C / C ++. Также был Microsoft QuickC 2.5 и а Microsoft QuickC для Windows 1.0. Visual C ++ компилятор до сих пор известен как Microsoft C / C ++ а на момент выпуска Visual C ++ 2015 Update 2 - версии 14.0.23918.0.

16-битные версии

  • Microsoft C 1.0, основанный на Решетка C, был первым продуктом Microsoft C в 1983 году. K&R C.
  • В C 2.0 добавлена ​​поддержка больших моделей.
  • C 3.0 была первой версией, разработанной внутри Microsoft.[4] Эта версия предполагала совместимость с K&R и более поздним стандартом ANSI. Он использовался внутри Microsoft (для Windows и Xenix разработка) в начале 1984 года. Он был отправлен как продукт в 1985 году.
  • C 4.0 добавлены оптимизации и CodeView, отладчик исходного уровня.
  • В C 5.0 добавлены оптимизации цикла и «Огромная модель памяти» (массивы больше 64 КБ). Microsoft Фортран и первый 32-битный компилятор для 80386 также были частью этого проекта.
  • Версия C 5.1, выпущенная в 1988 г., позволяла компилировать программы для OS / 2 1.x.
  • C 6.0 выпущен в 1989 году. Он добавил Верстак программиста IDE, анализ глобального потока, браузер исходного кода и новый отладчик, а также дополнительный C ++ внешний интерфейс.[5]
  • C / C ++ 7.0 был выпущен в 1992 году. Добавлена ​​встроенная поддержка для C ++ и MFC (Библиотека Microsoft Foundation Class) 1.0.[6]
  • Visual C ++ 1.0, который включал MFC 2.0, был первой версией «Visual» C ++, выпущенной в феврале 1993 года. Cfront 2.1 соответствует[7] и доступен в двух редакциях:[1]
  • Visual C ++ 1.5 был выпущен в декабре 1993 года, включал MFC 2.5 и добавлял OLE 2.0 и ODBC поддержка MFC.[9] Это была первая версия Visual C ++, которая появилась только на CD-ROM.
    • Visual C ++ 1.51 и 1.52 были доступны как часть службы подписки.
    • Visual C ++ 1.52b похож на 1.52, но не включает Control Development Kit.
    • Visual C ++ 1.52c был исправленной версией 1.5. Это последняя и, возможно, самая популярная платформа для разработки Майкрософт Виндоус 3.x. Это доступно через Сеть разработчиков Microsoft.

Строго 32-битные версии

  • Visual C ++ 1.0 (исходное название: 32-разрядная версия Visual C ++) была первой версией для 32-битный развитие для Intel 386 архитектура.[10] Хотя выпущен, когда 16 бит была доступна версия 1.5, она не включала поддержку OLE2 и ODBC. Он также был доступен в комплекте под названием Visual C ++ 16/32-bit Suite, который включал Visual C ++ 1.5.[11]
  • Visual C ++ 2.0, который включал MFC 3.0, был первой версией, которая была только 32-разрядной. Эта версия во многом опередила свое время, поскольку Windows 95 под кодовым названием "Чикаго" еще не был выпущен, и Windows NT имела лишь небольшую долю рынка. Microsoft включила и обновила Visual C ++ 1.5 как часть выпусков 2.x до 2.1, которые включали Visual C ++ 1.52, а также 16-разрядную и 32-разрядную версии Control Development Kit (CDK). Visual C ++ 2.x также поддерживается Win32s развитие. Это доступно через Сеть разработчиков Microsoft. Был выпуск Visual C ++ 2.0 RISC для MIPS и Альфа процессоров, а также кроссплатформенную версию для Macintosh (68000 Набор инструкций).[12]
    • Visual C ++ 2.1 и 2.2 были обновлениями для 2.0, доступными по подписке.
  • Visual C ++ 4.0, выпущенный 11 декабря 1995 г.,[13] представил Developer Studio IDE. Новаторская на тот момент мозаичная компоновка неперекрывающихся панелей - панель навигации, комбинированная панель отладчика на уровне редактора и исходного кода и панель вывода консоли.[14]- продолжается через Visual Studio продуктовая линейка (по состоянию на 2013 год). Visual C ++ 4.0 включал MFC 4.0, был разработан для Windows 95 и Windows NT. Чтобы обеспечить поддержку устаревших проектов (Windows 3.x / DOS), 4.0 поставляется вместе с установочным компакт-диском Visual C ++ 1.52. Обновления, доступные по подписке, включали Visual C ++ 4.1, который поставляется с Microsoft Game SDK (позже выпущенный отдельно как DirectX SDK), и Visual C ++ 4.2. Версия 3.0 была пропущена для достижения паритета версий между Visual C ++ 4.0 и MFC 4.0.[15]
  • Visual C ++ 4.2 не поддерживает Windows 3.x (Win32s ) развитие.[16] Это была последняя версия кроссплатформенной версии для Macintosh доступный и отличался от версии 2.x тем, что он также позволял компиляцию для PowerPC Набор инструкций.
  • Visual C ++ 5.0, который включал MFC 4.21 и был выпущен 1997-04-28,[13] было серьезным обновлением с 4.2.[17] Доступно четыре редакции: Learning,[18] Профессиональный,[19] Предприятие,[20] и RISC.[21]
  • Visual C ++ 6.0 (широко известный как VC6), который включал MFC 6.0, был выпущен в 1998 году.[22][23] Релиз был несколько противоречивым, поскольку он не включал ожидаемого обновления MFC. Visual C ++ 6.0 по-прежнему довольно популярен и часто используется для поддержки устаревших проектов. Однако есть проблемы с этой версией в Windows XP, особенно в режиме отладки (например, значения статических переменных не отображаются). Проблемы с отладкой можно решить с помощью патча, который называется «Visual C ++ 6.0 Processor Pack».[24] Номер версии: 12.00.8804
  • Visual C ++ .NET 2002 (также известный как Visual C ++ 7.0), который включал MFC 7.0, был выпущен в 2002 году с поддержкой генерации кода времени компоновки и проверок времени выполнения отладки, .NET 1.0 и Visual C # и Управляемый C ++. В новом пользовательском интерфейсе используются многие горячие клавиши и условные обозначения Visual Basic, что и объясняет его непопулярность среди разработчиков C ++.[нужна цитата ] Номер версии: 13.00.9466
  • Visual C ++ .NET 2003 (также известный как Visual C ++ 7.1), который включал MFC 7.1, был выпущен в 2003 году вместе с .NET 1.1 и являлся крупным обновлением Visual C ++ .NET 2002. Он считался патчем для Visual C ++ .NET. 2002. Соответственно, англоязычная обновленная версия Visual Studio .NET 2003 доставлялась владельцам англоязычной версии Visual Studio .NET 2002 по минимальной цене. Это была последняя версия, поддерживающая Windows 95 и NT 4.0 в качестве целевой.[нужна цитата ] Номер версии: 13.10.3077
  • Встроенный Visual C ++[25] в различных версиях использовался для разработки некоторых версий Windows CE Операционная система. Первоначально он заменил среду разработки, состоящую из инструментов, добавленных в Visual C ++ 6.0. eMbedded Visual C ++ был заменен как отдельная среда разработки на Microsoft Visual Studio 2005.

32-битные и 64-битные версии

  • Visual C ++ 2005 (также известный как Visual C ++ 8.0), который включал MFC 8.0, был выпущен в ноябре 2005 года. Эта версия поддерживает .NET 2.0 и включает новую версию C ++, предназначенную для платформы .NET (C ++ / CLI ) с целью замены предыдущей версии (Управляемый C ++ ). Однако управляемый C ++ для CLI по-прежнему доступен через параметры компилятора. Он также представил OpenMP. В Visual C ++ 2005 Microsoft также представила Сервер Team Foundation. В Visual C ++ 8.0 возникают проблемы с компиляцией проектов MFC AppWizard, созданных с помощью Visual Studio 6.0, поэтому обслуживание устаревших проектов можно продолжить в исходной среде IDE, если перезапись невозможна. Visual C ++ 2005 - последняя версия, поддерживающая Windows 98 и Windows Me.[26][27] Версия SP1 (14.00.50727.762) также доступна в Обновление Microsoft Windows SDK для Windows Vista.
  • Visual C ++ 2008 (также известный как Visual C ++ 9.0) был выпущен в ноябре 2007 года. Эта версия поддерживает .NET 3.5. Управляемый C ++ для CLI по-прежнему доступен через параметры компилятора. По умолчанию все приложения, скомпилированные для среды выполнения Visual C ++ 2008 (статическая и динамическая компоновка), будут работать только в Windows 2000 и более поздних версиях.[28][29] Пакет функций, выпущенный для VC9, позже включенный в SP1, добавил поддержку C ++ TR1 расширения библиотеки. Версия SP1 (15.00.30729.01) также доступна в Microsoft Windows SDK для Windows 7.
  • Поддерживаются некоторые версии Visual C ++ Itanium 2.
  • Visual C ++ 2010 (также известный как Visual C ++ 10.0) был выпущен 12 апреля 2010 г. Он использует SQL Server Compact база данных для хранения информации об исходном коде, включая IntelliSense информацию для лучшей поддержки IntelliSense и автозавершения кода.[30] Однако Visual C ++ 2010 не поддерживает Intellisense для C ++ / CLI.[31] В этой версии добавлена ​​библиотека параллельных вычислений C ++, называемая Библиотека параллельных шаблонов, частичная поддержка C ++ 11, значительно улучшил IntelliSense на основе Эдисон Дизайн Групп внешний интерфейс,[32] и улучшения производительности как компилятора, так и сгенерированного кода.[33] Эта версия построена на .NET 4.0, но поддерживает компиляцию в Машинный код. Частичная поддержка C ++ 11 в основном состоит из шести функций компилятора:[34] лямбда-выражения, ссылки rvalue, auto, decltype, static_assert и nullptr. C ++ 11 также поддерживает функции библиотеки (например, перемещение компонентов TR1 из пространства имен std :: tr1 непосредственно в пространство имен std). Вариативные шаблоны также рассматривались, но откладывались до какой-то будущей версии из-за более низкого приоритета, что объяснялось тем фактом, что, в отличие от других дорогостоящих в реализации функций (лямбда, ссылки rvalue), вариативные шаблоны принесут пользу лишь меньшинству разработчиков библиотеки, а не чем большинство конечных пользователей компилятора.[35] По умолчанию все приложения, скомпилированные для среды выполнения Visual C ++ 2010, работают только в Windows XP SP2 и более поздних версиях. Версия RTM (16.00.30319) также доступна в Windows SDK для Windows 7 и .NET Framework 4 (WinSDK v7.1).[36] Версия SP1 (16.00.40219) доступна как часть Visual Studio 2010 с пакетом обновления 1 или через обновление компилятора Microsoft Visual C ++ 2010 с пакетом обновления 1 для Windows SDK 7.1.[37]
  • Visual C ++ 2012 (также известный как Visual C ++ 11.0) был выпущен 15 августа 2012 г. Он включает улучшенную поддержку C ++ 11 и поддержку Среда выполнения Windows развитие.[38]
  • Visual C ++ 2013 (также известный как Visual C ++ 12.0) был выпущен 17 октября 2013 года. Он включает дополнительные возможности C ++ 11 и C99 поддержку и вводит ОСТАЛЬНЫЕ SDK.[39]
  • Visual C ++ 2015 (также известный как Visual C ++ 14.0) был выпущен 20 июля 2015 года.[40] В нем улучшена поддержка C ++ 11/14/17.[41] Без какого-либо объявления со стороны Microsoft Visual Studio 2015 с обновлением 2 начал генерировать вызовы телеметрии в скомпилированных двоичных файлах. После того, как некоторые пользователи связались с Microsoft по поводу этой проблемы, Microsoft заявила, что удалит эти телеметрические вызовы при компиляции с будущим обновлением Visual Studio 2015 Update 3.[42][43] Рассматриваемая функция была удалена из статических библиотек Visual C ++ CRT в Visual Studio 2015 с обновлением 3.[нужна цитата ]
  • Visual C ++ 2017 (также известный как Visual C ++ 14.1) был выпущен 7 марта 2017 г.
  • Visual C ++ 2019 (также известный как Visual C ++ 14.2) был выпущен 2 апреля 2019 г.

Внутренняя нумерация версий

Предопределенный макрос _MSC_VER обозначает основной и дополнительный номера версий компилятора Visual C ++. Значение макроса - это целочисленный литерал, в котором последние две цифры указывают дополнительный номер версии, а предыдущие цифры указывают номер основной версии.

Из Visual Studio 2017, _MSC_VER является монотонно увеличивается при каждом обновлении набора инструментов Visual C ++. Так, например, версия MSVC ++ 14.11, поставляемая с Visual Studio 2017 версии 15.3.0, устанавливает _MSC_VER к 1911. Microsoft рекомендует использовать >= оператор для проверки значения _MSC_VER.

Вот значения _MSC_VER для различных версий Visual C ++:

МСК    1.0   _MSC_VER == 100МСК    2.0   _MSC_VER == 200МСК    3.0   _MSC_VER == 300МСК    4.0   _MSC_VER == 400МСК    5.0   _MSC_VER == 500МСК    6.0   _MSC_VER == 600МСК    7.0   _MSC_VER == 700MSVC++ 1.0   _MSC_VER == 800MSVC++ 2.0   _MSC_VER == 900MSVC++ 4.0   _MSC_VER == 1000 (Разработчик Студия 4.0)MSVC++ 4.2   _MSC_VER == 1020 (Разработчик Студия 4.2)MSVC++ 5.0   _MSC_VER == 1100 (Визуальный Студия 97 версия 5.0)MSVC++ 6.0   _MSC_VER == 1200 (Визуальный Студия 6.0 версия 6.0)MSVC++ 7.0   _MSC_VER == 1300 (Визуальный Студия .СЕТЬ 2002 версия 7.0)MSVC++ 7.1   _MSC_VER == 1310 (Визуальный Студия .СЕТЬ 2003 версия 7.1)MSVC++ 8.0   _MSC_VER == 1400 (Визуальный Студия 2005 версия 8.0)MSVC++ 9.0   _MSC_VER == 1500 (Визуальный Студия 2008 версия 9.0)MSVC++ 10.0  _MSC_VER == 1600 (Визуальный Студия 2010 версия 10.0)MSVC++ 11.0  _MSC_VER == 1700 (Визуальный Студия 2012 версия 11.0)MSVC++ 12.0  _MSC_VER == 1800 (Визуальный Студия 2013 версия 12.0)MSVC++ 14.0  _MSC_VER == 1900 (Визуальный Студия 2015 версия 14.0)MSVC++ 14.1  _MSC_VER == 1910 (Визуальный Студия 2017 версия 15.0)MSVC++ 14.11 _MSC_VER == 1911 (Визуальный Студия 2017 версия 15.3)MSVC++ 14.12 _MSC_VER == 1912 (Визуальный Студия 2017 версия 15.5)MSVC++ 14.13 _MSC_VER == 1913 (Визуальный Студия 2017 версия 15.6)MSVC++ 14.14 _MSC_VER == 1914 (Визуальный Студия 2017 версия 15.7)MSVC++ 14.15 _MSC_VER == 1915 (Визуальный Студия 2017 версия 15.8)MSVC++ 14.16 _MSC_VER == 1916 (Визуальный Студия 2017 версия 15.9)MSVC++ 14.2  _MSC_VER == 1920 (Визуальный Студия 2019 Версия 16.0)MSVC++ 14.21 _MSC_VER == 1921 (Визуальный Студия 2019 Версия 16.1)MSVC++ 14.22 _MSC_VER == 1922 (Визуальный Студия 2019 Версия 16.2)MSVC++ 14.23 _MSC_VER == 1923 (Визуальный Студия 2019 Версия 16.3)MSVC++ 14.24 _MSC_VER == 1924 (Визуальный Студия 2019 Версия 16.4)MSVC++ 14.25 _MSC_VER == 1925 (Визуальный Студия 2019 Версия 16.5)MSVC++ 14.26 _MSC_VER == 1926 (Визуальный Студия 2019 Версия 16.6)MSVC++ 14.27 _MSC_VER == 1927 (Визуальный Студия 2019 Версия 16.7)MSVC++ 14.28 _MSC_VER == 1928 (Визуальный Студия 2019 Версия 16.8)

Эти номера версий относятся к основному номеру версии компиляторов и библиотек Visual C ++, как видно из каталогов установки. Это не относится к году в названии выпуска Visual Studio. Доступен подробный список.[44]

Обратите внимание, что версия исполняемого файла компилятора C ++ соответствует _MSC_VER и отличается от версии продукта Visual C ++ в целом. Например, cl.exe, входящий в состав MSVC ++ 14.22 (Visual Studio 2019 16.2.5), сообщает о своей версии как 19.22.27905 при запуске без аргументов.

Также есть _MSC_FULL_VER значение, определенное с 1200, для получения дополнительной информации о номере сборки.

Совместимость

ABI

Компилятор Visual C ++ ABI исторически менялись между основными выпусками компилятора.[45] Это особенно актуально для контейнеров STL, где размеры контейнеров сильно различались между выпусками компилятора.[46] Поэтому Microsoft рекомендует не использовать интерфейсы C ++ на границах модулей, если нужно включить клиентский код, скомпилированный с использованием другой версии компилятора. Вместо C ++ Microsoft рекомендует использовать C[47] или COM[48] интерфейсы, которые предназначены для обеспечения стабильного ABI между выпусками компилятора.

Все выпуски 14.x MSVC имеют стабильный ABI,[49] и двоичные файлы, созданные с помощью этих версий, могут быть смешаны для обеспечения прямой совместимости с учетом следующих ограничений:

  • Используемая версия набора инструментов должна быть равна или выше самой высокой версии набора инструментов, используемой для создания любых связанных двоичных файлов.
  • Версия MSVC Redistributable должна быть равна или выше версии набора инструментов, используемой любым компонентом приложения.
  • Статические библиотеки или объектные файлы, скомпилированные с помощью / GL (оптимизация всей программы), не совместимы между версиями на двоичном уровне и должны использовать один и тот же набор инструментов.

Библиотеки времени выполнения C

Visual C ++ поставляется с различными версиями библиотек времени выполнения C.[50] Это означает, что пользователи могут компилировать свой код с любой из доступных библиотек. Однако это может вызвать некоторые проблемы при использовании разных компонентов (DLL, EXE ) в той же программе. Типичный пример - программа, использующая разные библиотеки. Пользователь должен использовать тот же C Время выполнения для всех компонентов программы, если не понятны последствия. Microsoft рекомендует использовать многопоточный, библиотека динамической компоновки (параметр компилятора / MD или / MDd), чтобы избежать возможных проблем.[50]

POSIX

Хотя в Microsoft CRT реализовано большое количество POSIX интерфейсов, компилятор Visual C ++ выдаст предупреждение при каждый использование таких функций по умолчанию. Причина в том, что стандарты C и C ++ требуют префикса подчеркивания перед интерфейсами, определяемыми реализацией, поэтому использование этих функций нестандартно.[51] Однако системы, которые на самом деле совместимы с POSIX, не будут принимать эти подчеркнутые имена, и более переносимым будет просто отключить предупреждение вместо этого.

C

Хотя продукт изначально создавался как IDE для C язык программирования, в течение многих лет поддержка этого языка компилятором соответствовала только исходной редакции Стандарт C, датируемые 1989 годом, но не C99 пересмотр стандарта. Планов по поддержке C99 не было даже в 2011 году, спустя более десяти лет после его публикации.[52]

В Visual C ++ 2013, наконец, добавлена ​​поддержка различных функций C99 в режиме C (включая назначенные инициализаторы, составные литералы и _Bool тип)[53], хотя он еще не был завершен.[54] Visual C ++ 2015 дополнительно улучшил поддержку C99 с полной поддержкой стандартной библиотеки C99, за исключением функций, для которых требуются функции языка C99, еще не поддерживаемые компилятором.[55]

Большинство изменений из C11 версии стандарта до сих пор не поддерживаются Visual C ++ 2017.[56] Например, общий выбор через _Generic ключевое слово не поддерживаются компилятором и приводят к синтаксической ошибке.[57]

В 2018 году препроцессор был переработан, и на горизонте появился C11:[58]

Полная совместимость с C11 входит в нашу дорожную карту, и обновление препроцессора - лишь первый шаг в этом процессе. C11 _Generic функция фактически не является частью препроцессора, поэтому она еще не реализована. Я ожидаю, что после реализации эта функция будет работать независимо от того, используется ли традиционная или обновленная логика препроцессора.

_Generic Поддержка MSVC была предоставлена ​​с февраля 2020 года, неясно, когда она будет выпущена.[59]

использованная литература

  1. ^ а б «Visual C ++ добавляет поддержку Windows». InfoWorld. 22 февраля 1993 г. с. 17.
  2. ^ Лекстрейт, Винсент (январь 2010 г.). "Маяк языков программирования, v10.0". Архивировано из оригинал 30 мая 2012 г.. Получено 14 марта 2010.
  3. ^ «Нужны ли мне эти распространяемые файлы Microsoft Visual C ++?». Спросите Лео !. Проверено 18 ноября 2012.
  4. ^ Лейбсон, Стив (1 февраля 1985 г.). «Обзоры программного обеспечения: группа экспертов анализирует 21 компилятор C». Компьютерный язык. Получено 2020-06-05.
  5. ^ Лэдд, Скотт Роберт (1 августа 1990 г.). «Оптимизация с помощью Microsoft C 6.0».
  6. ^ Полученное из http://support.microsoft.com/kb/196831.
  7. ^ а б «Visual C ++ - мощный инструмент разработки». InfoWorld. 21 июня 1993 г. с. 94.
  8. ^ "Дебют Rival DOS Extenders на выставке". InfoWorld. 1 марта 1993 г. с. 18.
  9. ^ «Visual C ++ 1.5 интегрирует OLE, ODBC». InfoWorld. 8 ноября 1993 г. с. 5.
  10. ^ «Microsoft планирует предварительный выпуск 32-разрядной версии Visual C ++». InfoWorld. 19 июля 1993 г. с. 12.
  11. ^ «C ++ IDE развиваются». InfoWorld. 4 апреля 1994 г. с. 79.
  12. ^ «Стратегия Microsoft Visual C ++».
  13. ^ а б «Устаревшие продукты». Архивировано из оригинал на 2005-08-14.
  14. ^ Тот, Виктор (1996). "1". Выпуск Visual C ++ 4.0. Индианаполис: Издательство SAMS. ISBN  9780672308741. Получено 26 июля 2013.
  15. ^ «История Visual Studio (Часть 3)».
  16. ^ «Основные отличия от Visual C ++ 4.0 до 4.2». Архивировано из оригинал 28.02.2010. Получено 2018-04-18.
  17. ^ «Основные отличия от Visual C ++ 4.2 до 5.0».
  18. ^ «Microsoft Visual C ++ 5.0 Learning Edition». Архивировано из оригинал 27 апреля 1999 г.
  19. ^ «Microsoft Visual C ++ 5.0 Professional Edition». Архивировано из оригинал 27 апреля 1999 г.
  20. ^ «Microsoft Visual C ++ 5.0 Enterprise Edition». Архивировано из оригинал 17 апреля 1999 г.
  21. ^ «Microsoft Visual C ++ 5.0 RISC Edition». Архивировано из оригинал 29 апреля 1999 г.
  22. ^ Шилдс, Натан П. (8 июня 2018 г.). "Уголовное дело". Министерство юстиции США. п. 128. Само по себе это не является определяющей ссылкой, поскольку Visual C ++ 6.0, выпущенный в 1998 году, по-прежнему имеет сторонников в основном потому, что для работы не требуется установка платформы Microsoft .NET, как это делают более поздние версии Visual C ++.
  23. ^ «Основные отличия от Visual C ++ 5.0 до 6.0». Архивировано из оригинал 14 сентября 2008 г.
  24. ^ Эта страница подчеркивает, что Пользователи также должны работать под управлением Windows 98, Windows NT 4.0 или Windows 2000. Полученное из http://msdn2.microsoft.com/en-us/vstudio/aa718349.aspx.
  25. ^ Дуглас Болинг:Программирование Microsoft Windows CE .NET, третье издание Microsoft Press; 3-е издание (25 июня 2003 г.) Мягкая обложка: 1264 страницы ISBN  978-0735618848 - Компаньон компакт-диск с Microsoft eMbedded Visual C ++ 4.0 Service Pack 2 В архиве 2013-02-11 в Archive.today
  26. ^ Как: изменить WINVER и _WIN32_WINNT
  27. ^ Критические изменения
  28. ^ Платформы Windows (CRT)
  29. ^ «Критические изменения Visual C ++ 2008».
  30. ^ Блог группы разработчиков Visual C ++. «IntelliSense, часть 2: будущее». Получено 12 марта, 2008.
  31. ^ «Почему IntelliSense не поддерживается для C ++ / CLI в Visual Studio 2010». Получено 13 марта, 2011.
  32. ^ Блог группы разработчиков Visual C ++. «Восстановление Intellisense».
  33. ^ Блог группы разработчиков Visual C ++. «Создание кода Visual C ++ в Visual Studio 2010».
  34. ^ "Основные возможности языка C ++ 0x в VC10: Таблица".
  35. ^ "Стефан Т. Лававей: Все, что вы когда-либо хотели знать о nullptr".
  36. ^ Блог о Microsoft Windows SDK. «Выпущено: Windows SDK для Windows 7 и .NET Framework 4».
  37. ^ ИСПРАВЛЕНИЕ: компиляторы Visual C ++ удаляются при обновлении Visual Studio 2010 Professional или Visual Studio 2010 Express до Visual Studio 2010 SP1, если установлен Windows SDK v7.1.
  38. ^ «Что нового для Visual C ++ в Visual Studio 2012». Сеть разработчиков Microsoft. Microsoft. Получено 20 сентября, 2015.
  39. ^ «Что нового для Visual C ++ в Visual Studio 2013». Сеть разработчиков Microsoft. Miicrosoft. Получено 20 сентября, 2015.
  40. ^ Эрик Батталио (20 июля 2015 г.). «Visual Studio 2015 RTM уже доступна». Блог группы разработчиков Visual C ++. Microsoft.
  41. ^ Стефан Т. Лававей (19 июня 2015 г.). «Возможности C ++ 11/14/17 в VS 2015 RTM». Блог группы разработчиков Visual C ++. Microsoft.
  42. ^ Обзор автоматической вставки телеметрии Microsoft в двоичные файлы C ++
  43. ^ «Visual Studio добавляет вызовы функций телеметрии в двоичный файл? • / r / cpp». Reddit. Получено 2016-08-17.
  44. ^ «Предопределенные макросы компилятора / Wiki / компиляторы». sourceforge.net. Получено 2016-02-11.
  45. ^ Microsoft MSDN: Критические изменения в Visual C ++
  46. ^ Microsoft MSDN: Контейнеры (современный C ++)
  47. ^ Microsoft MSDN: Переносимость на границах ABI (современный C ++)
  48. ^ Форум Microsoft: Двоичная совместимость между версиями Visual C ++ В архиве 2013-02-16 в Archive.today
  49. ^ docs.microsoft.com: Двоичная совместимость C ++ между Visual Studio 2015, 2017 и 2019
  50. ^ а б Библиотеки времени выполнения C
  51. ^ "Совместимость". Microsoft: возможности библиотеки CRT.
  52. ^ «Поддержка C99». Microsoft Connect. Архивировано из оригинал на 2016-03-04. Получено 2015-09-21.
  53. ^ «Что нового для Visual C ++ в Visual Studio 2013». Сеть разработчиков Microsoft. Microsoft.
  54. ^ Пэт Бреннер (19 июля 2013 г.). «Поддержка библиотеки C99 в Visual Studio 2013». Блог группы разработчиков Visual C ++. Microsoft.
  55. ^ «Что нового для Visual C ++ в Visual Studio 2015». Сеть разработчиков Microsoft. Microsoft.
  56. ^ «Пошаговое руководство. Скомпилируйте программу на C в командной строке». Документация по Visual C ++. Microsoft.
  57. ^ «MSVC 2017 не поддерживает _Generic (тип универсальных макросов) в C».
  58. ^ Лувсанбат, Бат-Улзий (6 июля 2018 г.). «Прогресс препроцессора MSVC в направлении соответствия». Сеть разработчиков Microsoft. Архивировано из оригинал 8 января 2019 г.
  59. ^ {{cite web | url =https://www.reddit.com/r/cpp/comments/hjn4uv/c20_features_and_fixes_in_vs_2019_161_through_166/fwsil0q/?context=3 | title = Возможности и исправления C ++ 20 | date = 3 июля 2020 г. website =Reddit

дальнейшее чтение

внешние ссылки