Jump to content

Microsoft Visual С++

(Перенаправлено с Visual C Plus Plus )
Визуальный С++
Разработчик(и) Майкрософт
Первоначальный выпуск февраль 1993 г .; 31 год назад ( 1993-02 ) [ 1 ]
Стабильная версия
14.40.33810
Написано в С++ [ 2 ]
Операционная система Окна
Платформа IA-32 , x86-64 и ARM
Доступно в Английский, китайский (упрощенный и традиционный), чешский, французский, немецкий, итальянский, японский, корейский, польский, португальский (бразильский), русский, испанский, турецкий
Тип Компилятор
Лицензия Пробное и бесплатное ПО
Веб-сайт документы .microsoft /en-нас /cpp /

Microsoft Visual C++ ( MSVC ) — компилятор C , C++ , C++/CLI и C++/CX языков программирования от Microsoft . MSVC является проприетарным программным обеспечением ; Первоначально это был отдельный продукт, но позже он стал частью Visual Studio и стал доступен как в пробной, так и в бесплатной форме. Он содержит инструменты для разработки и отладки кода C++, особенно кода, написанного для Windows API , DirectX и .NET .

Для правильной работы многих приложений требуются распространяемые пакеты библиотеки времени выполнения 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, основанный на Lattice C , был первым продуктом Microsoft на языке C, выпущенным в 1983 году. Он не K&R C. соответствовал требованиям
  • В C 2.0 добавлена ​​поддержка больших моделей, позволяющая использовать до 1 МБ как для сегмента кода, так и для сегмента данных. [ 4 ]
  • C 3.0 был первой версией, разработанной внутри Microsoft. [ 5 ] Эта версия предполагала совместимость с K&R и более поздним стандартом ANSI. Он использовался внутри Microsoft (для разработки Windows и Xenix ) в начале 1984 года. В качестве продукта он был выпущен в 1985 году.
  • В C 4.0 добавлены оптимизации и CodeView , отладчик уровня исходного кода.
  • В C 5.0 добавлена ​​оптимизация циклов и поддержка модели огромной памяти ( массивы размером более 64 КБ).
  • C 5.1, выпущенный в 1988 году, позволял компилировать программы для OS/2 1.x. Версия с четырнадцатью 5,25-дюймовыми дисками (два из которых были 1,2 МБ, остальные 360 КБ) включали QuickC. Версия с одиннадцатью 720 тыс. 3,5-дюймовых дисков, входившая в комплект разработки программного обеспечения OS / 2, включала MASM 5.1 (один исполняемый файл, который работал как под MSDOS, так и под MSDOS и ОС/2 1.x).
  • В C 6.0, выпущенном в 1989 году, добавлена ​​поддержка модели крошечной памяти и улучшена поддержка стандарта ANSI C89 (в документации прямо сказано, что он не соответствует на 100%, но кажется достаточно близким для практических целей). В него добавлена ​​среда разработки Programmer's Workbench , глобальный анализ потока, браузер исходного кода и новый отладчик. К удивлению многих, C++ не был включен, хотя у конкурентов уже были предложения. [ 6 ]
  • C/C++ 7.0 был выпущен в 1992 году. Поддержка OS/2 прекращена. Для компиляции требовался процессор 386 плюс входящий в комплект DOS 386MAX расширитель . [ 7 ] хотя для того, чтобы пользователи могли использовать расширители DOS в своих собственных программах, требовался один из нескольких выпущенных позже сторонних инструментов. [ 8 ] Добавлена ​​встроенная поддержка C++ и MFC (библиотека классов Microsoft Foundation) 1.0. [ 9 ]
  • Visual C++ 1.0, включавший MFC 2.0, был первой версией Visual C++, выпущенной в феврале 1993 года. Она была Cfront 2.1. совместима с [ 10 ] и доступен в двух редакциях: [ 1 ]
  • Visual C++ 1.5 был выпущен в декабре 1993 года и включал MFC 2.5, а также добавил OLE 2.0 и ODBC в MFC. поддержку [ 12 ] Это была первая версия Visual C++, выпускавшаяся только на компакт-диске .
    • Visual C++ 1.51 и 1.52 были доступны как часть службы подписки.
    • Visual C++ 1.52b аналогичен версии 1.52, но не включает Control Development Kit.
    • Visual C++ 1.52c был исправленной версией 1.5. Это последняя и, возможно, самая популярная платформа разработки для Microsoft Windows 3.x. Он доступен через Microsoft Developer Network .

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

[ редактировать ]
  • Visual C++ 1.0 (исходное название: Visual C++ 32-bit Edition), выпущенный в 1993 году, был первой версией 32-битной разработки для архитектуры Intel 386 . [ 13 ] Хотя он был выпущен, когда была доступна 16-битная версия 1.5, она не включала поддержку OLE2 и ODBC. Он также был доступен в пакете под названием Visual C++ 16/32-bit Suite, который включал Visual C++ 1.5. [ 14 ]
  • 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 также поддерживает Win32 разработку . Он доступен через Microsoft Developer Network . Существовала версия Visual C++ 2.0 RISC для процессоров MIPS и Alpha , а также кроссплатформенная версия для Macintosh ( набор инструкций 68000 ). [ 15 ]
    • Microsoft Visual C++ Cross-Development Edition для Macintosh — надстройка для Visual C++, в которой появилась библиотека переносимости Windows, первоначально известная как библиотека Windows для Macintosh. [ 16 ] : 17  или Windows Layer для Macintosh (WLM), [ 17 ] : 16  позволяя разработчикам писать приложения с использованием API-интерфейсов Win32 и MFC, которые можно скомпилировать для компьютеров Macintosh с архитектурой 68000. [ 16 ]
    • Visual C++ 2.1 и 2.2 были обновлениями для версии 2.0, доступными по подписке.
  • Visual C++ 4.0, выпущенный 11 декабря 1995 г., [ 18 ] представила среду разработки Developer Studio. Его новаторская на тот момент мозаичная компоновка непересекающихся панелей — панель навигации, комбинированная панель редактора/отладчика уровня исходного кода и панель вывода консоли. [ 19 ] - продолжается в линейке продуктов 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. [ 20 ]
  • Visual C++ 4.2 не поддерживал разработку для Windows 3.x ( Win32s ). [ 21 ] Это была финальная версия с доступной кроссплатформенной версией для Mac , и она отличалась от версии 2.x тем, что также допускала компиляцию для набора инструкций PowerPC .
  • Visual C++ 5.0 (в комплекте с Visual Studio 97), включающий MFC 4.21 и выпущенный 28 апреля 1997 г., [ 18 ] было серьезным обновлением с версии 4.2. [ 22 ] Доступно в четырех редакциях: Обучение, [ 23 ] Профессиональный, [ 24 ] Предприятие, [ 25 ] и РИСК. [ 26 ]
  • Visual C++ 6.0 (широко известный как VC6 и доступный отдельно в редакциях Standard, Professional и Enterprise, а также в комплекте с Visual Studio 6.0), который включал MFC 6.0, был выпущен в 1998 году. [ 27 ] [ 28 ] Релиз вызвал несколько споров, поскольку не включал ожидаемого обновления MFC. Visual C++ 6.0 по-прежнему довольно популярен и часто используется для поддержки устаревших проектов. Однако есть проблемы с этой версией в Windows XP, особенно в режиме отладки (например, не отображаются значения статических переменных). Проблемы отладки можно решить с помощью патча под названием «Пакет процессора Visual C++ 6.0». [ 29 ] Номер версии: 12.00.8804
  • Visual C++ .NET 2002 (также известный как Visual C++ 7.0), который включал MFC 7.0, был выпущен в 2002 году с поддержкой генерации кода времени компоновки и отладки проверок времени выполнения, .NET 1.0, а также Visual C# и Managed 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, а также первую версию, поддерживающую C99. конструкция «длинный-длинный». Он считался исправлением для Visual C++ .NET 2002. Соответственно, англоязычная обновленная версия Visual Studio .NET 2003 поставлялась за минимальную цену владельцам англоязычной версии Visual Studio .NET 2002. Windows 98 официально является самой низкой версией. поддерживаемая версия. Хотя простые программы будут работать в Windows 95 и NT 4.0, более сложные программы могут вызывать ссылки на такие вещи, как ws2_32.dll, или функции, отсутствующие в kernel32.dll. В более поздних версиях (Visual C++ 2005) компилятора даже простые программы не будут работать (если вы не замените библиотеку C), поскольку в них есть ссылка на функцию IsDebuggerPresent в kernel32.dll, которая существует только в Windows 98 и более поздних версиях. [ нужна ссылка ] Номер версии: 13.10.3077.
  • Встроенный Visual C++ [ 30 ] в различных версиях использовался для разработки некоторых версий операционной системы 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 ), с целью замены предыдущей версии ( Managed C++ ). Однако управляемый C++ для CLI по-прежнему доступен через параметры компилятора. Он также представил OpenMP . В Visual C++ 2005 компания Microsoft также представила Team Foundation Server . В Visual C++ 8.0 возникают проблемы с компиляцией проектов MFC AppWizard, созданных с помощью Visual Studio 6.0, поэтому обслуживание устаревших проектов можно продолжить с использованием исходной интегрированной среды разработки, если перезапись невозможна. Visual C++ 2005 — последняя версия, предназначенная для Windows 98 и Windows Me . [ 31 ] [ 32 ] Версия 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, Windows XP SP2 и более поздних версиях. [ 33 ] [ 34 ] Пакет функций, выпущенный для 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 и автодополнения кода. [ 35 ] Однако Visual C++ 2010 не поддерживает Intellisense для C++/CLI. [ 36 ] C++ В этой версии добавлена ​​библиотека параллельных вычислений под названием Parallel Patterns Library , частичная поддержка C++11 , значительно улучшена технология IntelliSense на основе Edison Design Group . интерфейса [ 37 ] и улучшения производительности как компилятора, так и сгенерированного кода. [ 38 ] Эта версия построена на .NET 4.0, но поддерживает компиляцию в машинный код . Частичная поддержка C++11 в основном состоит из шести функций компилятора: [ 39 ] лямбды, ссылки rvalue, auto, decltype, static_assert и nullptr. C++11 также поддерживает функции библиотеки (например, перемещение компонентов TR1 из пространства имен std::tr1 непосредственно в пространство имен std). Шаблоны с переменным числом вариантов также рассматривались, но были отложены до какой-либо будущей версии из-за более низкого приоритета, который был связан с тем фактом, что, в отличие от других дорогостоящих в реализации функций (лямбда, ссылки на rvalue), шаблоны с переменным числом значений принесли бы пользу только меньшинству библиотек. писатели, а не большинство конечных пользователей компиляторов. [ 40 ] По умолчанию все приложения, скомпилированные с использованием среды выполнения Visual C++ 2010, работают только в Windows XP SP2 и более поздних версиях. Версия RTM (16.00.30319) также доступна в Windows SDK для Windows 7 и .NET Framework 4 (WinSDK v7.1). [ 41 ] Версия SP1 (16.00.40219) доступна как часть пакета обновления 1 для Visual Studio 2010 или через обновление компилятора Microsoft Visual C++ 2010 с пакетом обновления 1 для Windows SDK 7.1. [ 42 ]
  • Visual C++ 2012 (также известный как Visual C++ 11.0) был выпущен 15 августа 2012 года. Он отличается улучшенной поддержкой C++11 и поддержкой разработки среды выполнения Windows . [ 43 ]
  • Visual C++ 2013 (также известный как Visual C++ 12.0) был выпущен 17 октября 2013 года. Он обеспечивает дополнительную поддержку C++11 и C99 , а также представляет REST SDK. [ 44 ]
  • Visual C++ 2015 (также известный как Visual C++ 14.0) был выпущен 20 июля 2015 года. [ 45 ] Он имеет улучшенную поддержку C++ 11/14/17. [ 46 ] Без какого-либо объявления от Microsoft Visual Studio 2015 Update 2 начала генерировать вызовы телеметрии в скомпилированных двоичных файлах. После того, как некоторые пользователи обратились в Microsoft по поводу этой проблемы, Microsoft заявила, что удалит эти вызовы телеметрии при компиляции с будущим обновлением 3 для Visual Studio 2015. [ 47 ] [ 48 ] Рассматриваемая функция была удалена из статических библиотек Visual C++ CRT в Visual Studio 2015 Update 3. [ нужна ссылка ]
  • Visual C++ 2017 (также известный как Visual C++ 14.1) был выпущен 7 марта 2017 года. [ 49 ]
  • Visual C++ 2019 (также известный как Visual C++ 14.20) был выпущен 2 апреля 2019 года. [ 50 ]
  • Visual C++ 2022 (также известный как Visual C++ 14.30) был выпущен 8 ноября 2021 года. [ 51 ]

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

[ редактировать ]

При работе с Visual C или C++ следует учитывать несколько разных номеров версий. Самым старым и оригинальным из них является номер версии компилятора, который монотонно увеличивался со времен первых дней компилятора Microsoft C. Это версия, возвращаемая запуском команды cl.exe самостоятельно, без каких-либо вариантов. Если взять две цифры после запятой и отбросить десятичную точку, это также станет значением макроса препроцессора C: _MSC_VERи переменная CMake: MSVC_VERSION. Более длинная версия макроса C: _MSC_FULL_VER чтобы сделать более детальные различия между сборками компилятора. Пример _MSC_VER «1933» означает версию 19.33 компилятора Microsoft C/C++ и _MSC_FULL_VER это «193331630». Вам следует использовать >= оператор для проверки значения _MSC_VER или _MSC_FULL_VER вместо равенства.

Версия продукта Visual, например «17.3.4», обозначает версию Visual Studio, с которой была упакована версия 19.33 компилятора. Также есть версия библиотеки времени выполнения Microsoft Visual C/C++, например «14.3». Отсюда также можно вывести версию набора инструментов, которую можно получить, взяв первые три цифры версии библиотеки времени выполнения и отбросив десятичную дробь, например «143». Он включает в себя библиотеку времени выполнения Visual C/C++, а также компиляторы, компоновщики, ассемблеры, другие инструменты сборки, а также соответствующие библиотеки и файлы заголовков. Ниже приводится (очищаемая) таблица известных коррелирующих номеров версий.

Версии Visual Studio [ 52 ] [ 53 ]
название продукта ВК (код версии) маркетинговый год _MSC_VER _MSC_FULL_VER версия библиотеки времени выполнения
Майкрософт С 6.0 600
Microsoft Си/С++ 7.0 700
Визуальный С++ 1.0 1.0 800 1
Визуал С++ 2.0 2.0 900 2
Визуал С++ 4.0 4.0 1000 4
Визуал С++ 4.1 4.1 1010 4.1
Визуал С++ 4.2 4.2 1020 4.2
Визуальная Студия 97 [5.0] 5.0 97 1100 5
Visual Studio 6.0 с пакетом обновления 5 (SP5) 6.0 1200 12008804 6
Visual Studio 6.0 с пакетом обновления 6 (SP6) 6.0 1200 12008804 6
Visual Studio .NET 2002 [7.0] 7.0 2002 1300 13009466 7
Бета-версия Visual Studio .NET 2003 [7.1] 7.1 2003 1310 13102292 7.1
Набор инструментов Visual Studio 2003 [7.1] 7.1 2003 1310 13103052 7.1
Visual Studio .NET 2003 [7.1] 7.1 2003 1310 13103077 7.1
Visual Studio .NET 2003 с пакетом обновления 1 [7.1] 7.1 2003 1310 13106030 7.1
Visual Studio 2005, бета-версия 1 [8.0] 8.0 2005 1400 140040607 8
Visual Studio 2005 бета 2 [8.0] 8.0 2005 1400 140050215 8
Визуальная Студия 2005 [8.0] 8.0 2005 1400 140050320 8
Visual Studio 2005 с пакетом обновления 1 [8.0] 8.0 2005 1400 140050727 8
Visual Studio 2008 бета 2 [9.0] 8.0 2008 1500 150020706 9
Визуальная Студия 2008 [9.0] 9.0 2010 1500 150021022 9
Visual Studio 2008 с пакетом обновления 1 [9.0] 9.0 2010 1500 150030729 9
Visual Studio 2010, бета-версия 1 [10.0] 10.0 2010 1600 160020506 10
Visual Studio 2010, бета-версия 2 [10.0] 10.0 2010 1600 160021003 10
Визуальная Студия 2010 [10.0] 10.0 2010 1600 160030319 10
Visual Studio 2010 с пакетом обновления 1 [10.0] 10.0 2010 1600 160040219 10
Визуальная Студия 2012 [11.0] 11.0 2012 1700 170050727 11
Visual Studio 2012, обновление 1 [11.0] 11.0 2012 1700 170051106 11
Visual Studio 2012, обновление 2 [11.0] 11.0 2012 1700 170060315 11
Visual Studio 2012, обновление 3 [11.0] 11.0 2012 1700 170060610 11
Visual Studio 2012, обновление 4 [11.0] 11.0 2012 1700 170061030 11
CTP-версия Visual Studio 2012, ноябрь [11.0] 11.0 2012 1700 170051025 11
Предварительная версия Visual Studio 2013 [12.0] 12.0 2013 1800 180020617 12
Visual Studio 2013-кандидатская версия [12.0] 12.0 2013 1800 180020827 12
Визуальная Студия 2013 [12.0] 12.0 2013 1800 180021005 12
Visual Studio 2013, обновление 1 [12.0] 12.0 2013 1800 180021005 12
Visual Studio 2013 Update2 RC [12.0] 12.0 2013 1800 180030324 12
Visual Studio 2013, обновление 2 [12.0] 12.0 2013 1800 180030501 12
Visual Studio 2013, обновление 3 [12.0] 12.0 2013 1800 180030723 12
Visual Studio 2013, обновление 4 [12.0] 12.0 2013 1800 180031101 12
Visual Studio 2013, обновление 5 [12.0] 12.0 2013 1800 180040629 12
CTP-версия Visual Studio 2013, ноябрь [12.0] 12.0 2013 1800 180021114 12
Визуальная Студия 2015 [14.0] 14.0 2015 1900 190023026 14
Visual Studio 2015, обновление 1 [14.0] 14.0 2015 1900 190023506 14
Visual Studio 2015, обновление 2 [14.0] 14.0 2015 1900 190023918 14
Visual Studio 2015, обновление 3 [14.0] 14.0 2015 1900 190024210 14
Visual Studio 2017 версии 15.0 15.0 2017 1910 191025017 14.1
Visual Studio 2017 версии 15.1 15.1 2017 1910 191025017 14.1
Visual Studio 2017 версии 15.2 15.2 2017 1910 191025017 14.1
Visual Studio 2017 версии 15.3.3 15.3.3 2017 1911 191125507 14.11
Visual Studio 2017 версии 15.4.4 15.4.4 2017 1911 191125542 14.11
Visual Studio 2017 версии 15.4.5 15.4.5 2017 1911 191125547 14.11
Visual Studio 2017 версии 15.5.2 15.5.2 2017 1912 191225831 14.12
Visual Studio 2017 версии 15.5.3 15.5.3 2017 1912 191225834 14.12
Visual Studio 2017 версии 15.5.4 15.5.4 2017 1912 191225834 14.12
Visual Studio 2017 версии 15.5.6 15.5.6 2017 1912 191225835 14.12
Visual Studio 2017 версии 15.5.7 15.5.7 2017 1912 191225835 14.12
Visual Studio 2017 версии 15.6.0 15.6.0 2017 1913 191326128 14.13
Visual Studio 2017 версии 15.6.1 15.6.1 2017 1913 191326128 14.13
Visual Studio 2017 версии 15.6.2 15.6.2 2017 1913 191326128 14.13
Visual Studio 2017 версии 15.6.3 15.6.3 2017 1913 191326129 14.13
Visual Studio 2017 версии 15.6.4 15.6.4 2017 1913 191326129 14.13
Visual Studio 2017 версии 15.6.6 15.6.6 2017 1913 191326131 14.13
Visual Studio 2017 версии 15.6.7 15.6.7 2017 1913 191326132 14.13
Visual Studio 2017 версии 15.7.1 15.7.1 2017 1914 191426428 14.14
Visual Studio 2017 версии 15.7.2 15.7.2 2017 1914 191426429 14.14
Visual Studio 2017 версии 15.7.3 15.7.3 2017 1914 191426430 14.14
Visual Studio 2017 версии 15.7.5 15.7.5 2017 1914 191426433 14.14
Visual Studio 2017 версии 15.9.1 15.9.1 2017 1916 191627023 14.16
Visual Studio 2017 версии 15.9.4 15.9.4 2017 1916 191627025 14.16
Visual Studio 2017 версии 15.9.5 15.9.5 2017 1916 191627026 14.16
Visual Studio 2017 версии 15.9.7 15.9.7 2017 1916 191627027 14.16
Visual Studio 2017 версии 15.9.11 15.9.11 2017 1916 191627030 14.16
Visual Studio 2019 версии 16.0.0 16.0.0 2019 1920 192027508 14.20
Visual Studio 2019 версии 16.1.2 16.1.2 2019 1921 192127702 14.21
Visual Studio 2019 версии 16.2.3 16.2.3 2019 1922 192227905 14.21
Visual Studio 2019 версии 16.3.2 16.3.2 2019 1923 192328105 14.21
Visual Studio 2019 версии 16.4.0 16.4.0 2019 1924 192428314 14.24
Visual Studio 2019 версии 16.5.1 16.5.1 2019 1925 192528611 14.25
Visual Studio 2019 версии 16.6.2 16.6.2 2019 1926 192628806 14.26
Visual Studio 2019 версии 16.7 16.7 2019 1927 192729112 14.27
Visual Studio 2019 версии 16.8.1 16.8.1 2019 1928 192829333 14.28
Visual Studio 2019 версии 16.8.2 16.8.2 2019 1928 192829334 14.28
Visual Studio 2019 версии 16.9.0 16.9.0 2019 1928 192829910 14.28
Visual Studio 2019 версии 16.9.2 16.9.2 2019 1928 192829913 14.28
Visual Studio 2019 версии 16.9.17 16.9.17 2019 1928 192829921 14.28
Visual Studio 2019 версии 16.9.18 16.9.18 2019 1928 192829921 14.28
Visual Studio 2019 версии 16.9.19 16.9.19 2019 1928 192829923 14.28
Visual Studio 2019 версии 16.11.2 16.11.2 2019 1929 192930133 14.29
Visual Studio 2019 версии 16.11.8 16.11.8 2019 1929 192930138 14.29
Visual Studio 2019 версии 16.11.9 16.11.9 2019 1929 192930139 14.29
Visual Studio 2019 версии 16.11.10 16.11.10 2019 1929 192930140 14.29
Visual Studio 2019 версия 16.11.11 16.11.11 2019 1929 192930141 14.29
Visual Studio 2019 версия 16.11.12 16.11.12 2019 1929 192930142 14.29
Visual Studio 2019 версия 16.11.16 16.11.16 2019 1929 192930145 14.29
Visual Studio 2019 версия 16.11.24 16.11.24 2019 1929 192930148 14.29
Visual Studio 2019 версия 16.11.27 16.11.27 2019 1929 192930151 14.29
Visual Studio 2019 версия 16.11.35 16.11.35 2019 1929 192930154 14.29
Visual Studio 2022 версии 17.0.1 17.0.1 2022 1930 193030705 14.30
Visual Studio 2022 версии 17.0.2 17.0.2 2022 1930 193030706 14.31
Visual Studio 2022 версии 17.1.3 17.1.3 2022 1931 193131105 14.31
Visual Studio 2022 версии 17.2.2 17.2.2 2022 1932 193231329 14.32
Visual Studio 2022 версии 17.3.4 17.3.4 2022 1933 193331630 14.33
Visual Studio 2022 версии 17.4.0 17.4.0 2022 1934 193431933 14.34
Visual Studio 2022 версии 17.5.0 17.5.0 2022 1935 193532215 14.35
Visual Studio 2022 версии 17.6.0 17.6.0 2022 1936 193632532 14.36
Visual Studio 2022 версии 17.6.2 17.6.2 2022 1936 193632532 14.36.32532
Visual Studio 2022 версии 17.6.4 17.6.4 2022 1936 193632535 14.36.32532
Visual Studio 2022 версии 17.7.0 17.7.0 2022 1937 193732822 14.36.32543
Visual Studio 2022 версии 17.8.0 17.8.0 2022 1938 193833130 14.38.33135
Visual Studio 2022 версии 17.9.1 17.9.1 2022 1939 193933520 14.39.33520
Visual Studio 2022 версии 17.9.6 17.9.6 2022 1939 193933523 14.39.33523
Visual Studio 2022 версии 17.10.1 17.10.1 2022 1940 194033811 14.40.33811

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

[ редактировать ]

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

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

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

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

[ редактировать ]

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

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

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

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

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

Препроцессор был капитально отремонтирован в 2018 году, и на горизонте появился C11: [ 67 ]

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

_Generic поддержка MSVC была обеспечена с февраля 2020 года. [ 68 ]

В сентябре 2020 года Microsoft объявила, что поддержка стандартов C11 и C17 в MSVC появится в версии 16.8. [ 69 ] Сюда не вошли дополнительные функции, но Microsoft указала, что планирует добавить поддержку атомарности и потоков позднее. В версии 17.5 частичный (поскольку атомные блокировки отсутствуют) и экспериментальный (то есть скрытый за флагом компилятора). /experimental:c11atomics) добавлена ​​поддержка атомики [ 70 ] а в версии 17.8 была добавлена ​​поддержка потоков, на этот раз без флага компилятора. [ 71 ] [ 72 ]

При настройках по умолчанию MSVC не выполняет двухфазный поиск имени, что не позволяет ему помечать широкий спектр недопустимого кода. Большинство проверок откладываются до создания экземпляра шаблона. Более поздние версии исправляют это поведение, но его необходимо включить с помощью параметра командной строки. /permissive-. [ 73 ]

  1. ^ Перейти обратно: а б «В Visual C++ добавлена ​​поддержка Windows» . Инфомир . 22 февраля 1993 г. с. 17.
  2. ^ Лекстрейт, Винсент (январь 2010 г.). «Маяк языков программирования, v10.0» . Архивировано из оригинала 30 мая 2012 года . Проверено 14 марта 2010 г.
  3. ^ «Нужны ли мне эти распространяемые файлы Microsoft Visual C++?» . Спроси Лео! Проверено 18 ноября 2012 г.
  4. ^ Компьютерный язык - выпуск 06 (1985-02) (CL Publications) (США) . Февраль 1985 года.
  5. ^ Лейбсон, Стив (1 февраля 1985 г.). «Обзоры программного обеспечения: группа экспертов анализирует 21 компилятор C» . Компьютерный язык . Проверено 5 июня 2020 г.
  6. ^ Лэдд, Скотт Роберт (1 августа 1990 г.). «Оптимизация с помощью Microsoft C 6.0» .
  7. ^ Майерс, Бен (1 июля 1992 г.). «Майкрософт С/С++» . Журнал ПК . Зифф Дэвис . п. 387 . Проверено 21 декабря 2023 г.
  8. ^ «Объявлено о выпуске новостей/программного обеспечения» . Инфомир . Медиа-группа InfoWorld. 15 марта 1993 г. Проверено 21 декабря 2023 г.
  9. ^ Получено с http://support.microsoft.com/kb/196831 .
  10. ^ Перейти обратно: а б «Visual C++ — мощный инструмент разработки» . Инфомир . 21 июня 1993 г. с. 94.
  11. ^ «Дебют конкурирующих расширителей DOS» . Инфомир . 1 марта 1993 г. с. 18.
  12. ^ «Visual C++ 1.5 интегрирует OLE, ODBC» . Инфомир . 8 ноября 1993 г. с. 5.
  13. ^ «Microsoft собирается выпустить предварительную версию 32-разрядной версии Visual C++» . Инфомир . 19 июля 1993 г. с. 12.
  14. ^ «IDE C++ развиваются» . Инфомир . 4 апреля 1994 г. с. 79.
  15. ^ «Стратегия Microsoft Visual C++» .
  16. ^ Перейти обратно: а б Калленс, Чейн; Блэквелл, Кен (1995). Кроссплатформенная разработка с использованием Visual C++ . Книги М&Т. ISBN  1-55851-428-7 . Проверено 27 января 2024 г.
  17. ^ Пламондон, Джеймс (9 октября 1997 г.). «Хронология всеобщей евангелизации» (PDF) . Корпорация Майкрософт. Архивировано из оригинала (PDF) 2 февраля 2007 г. Проверено 27 января 2024 г.
  18. ^ Перейти обратно: а б «Устаревшие товары» . Архивировано из оригинала 14 августа 2005 г.
  19. ^ Тот, Виктор (1996). «1» . Выпущен Visual C++ 4.0 . Индианаполис: Издательство SAMS . ISBN  9780672308741 . Проверено 26 июля 2013 г.
  20. ^ «История Visual Studio (часть 3)» . 6 августа 2021 г.
  21. ^ «Основные изменения Visual C++ 4.0 в 4.2» . Архивировано из оригинала 28 февраля 2010 г. Проверено 18 апреля 2018 г.
  22. ^ «Основные изменения Visual C++ 4.2 в 5.0» .
  23. ^ «Обучающая версия Microsoft Visual C++ 5.0» . Майкрософт . Архивировано из оригинала 27 апреля 1999 года.
  24. ^ «Microsoft Visual C++ 5.0 Professional Edition» . Майкрософт . Архивировано из оригинала 27 апреля 1999 года.
  25. ^ «Microsoft Visual C++ 5.0 Enterprise Edition» . Майкрософт . Архивировано из оригинала 17 апреля 1999 года.
  26. ^ «Microsoft Visual C++ 5.0 RISC Edition» . Майкрософт . Архивировано из оригинала 29 апреля 1999 года.
  27. ^ Шилдс, Натан П. (8 июня 2018 г.). «Уголовное заявление» . Министерство юстиции США . п. 128. Это само по себе не является диспозитивной ссылкой, поскольку Visual C++ 6.0, выпущенный в 1998 году, до сих пор имеет сторонников, главным образом потому, что для его запуска не требуется установка платформы Microsoft .NET, как это делают более поздние версии Visual C++.
  28. ^ «Основные изменения Visual C++ 5.0 в 6.0» . Архивировано из оригинала 14 сентября 2008 года.
  29. ^ На этой странице подчеркивается, что пользователи также должны использовать Windows 98, Windows NT 4.0 или Windows 2000. Получено с http://msdn2.microsoft.com/en-us/vstudio/aa718349.aspx .
  30. ^ Дуглас Болинг: Программирование Microsoft Windows CE .NET, третье издание Microsoft Press; 3-е издание (25 июня 2003 г.) Мягкая обложка: 1264 страницы. ISBN   978-0735618848 сопутствующий компакт-диск с встроенным Microsoft Visual C++ 4.0 с пакетом обновления 2. Архивировано 11 февраля 2013 г. в archive.today.
  31. ^ Как: изменить WINVER и _WIN32_WINNT.
  32. ^ Критические изменения
  33. ^ Платформы Windows (CRT)
  34. ^ «Глобальные изменения Visual C++ 2008» . 25 мая 2023 г.
  35. ^ Блог группы Visual C++. «IntelliSense, часть 2: Будущее» . Проверено 12 марта 2008 г.
  36. ^ «Почему IntelliSense не поддерживается для C++/CLI в Visual Studio 2010» . Проверено 13 марта 2011 г.
  37. ^ Блог группы Visual C++ (27 мая 2009 г.). «Восстановление IntelliSense» .
  38. ^ Блог группы Visual C++. «Генерация кода Visual C++ в Visual Studio 2010» .
  39. ^ «Основные возможности языка C++0x в VC10: таблица» .
  40. ^ «Стефан Т. Лававей: Все, что вы когда-либо хотели знать о nullptr» .
  41. ^ Блог Microsoft Windows SDK. «Выпущено: Windows SDK для Windows 7 и .NET Framework 4» .
  42. ^ ИСПРАВЛЕНИЕ: компиляторы Visual C++ удаляются при обновлении Visual Studio 2010 Professional или Visual Studio 2010 Express до Visual Studio 2010 SP1, если установлен Windows SDK v7.1.
  43. ^ «Новые возможности Visual C++ в Visual Studio 2012» . Сеть разработчиков Microsoft . Майкрософт. 29 ноября 2012 года . Проверено 20 сентября 2015 г.
  44. ^ «Новые возможности Visual C++ в Visual Studio 2013» . Сеть разработчиков Microsoft . Майкрософт. 28 апреля 2015 года . Проверено 20 сентября 2015 г.
  45. ^ Эрик Батталио (20 июля 2015 г.). «Visual Studio 2015 RTM уже доступна» . Блог группы Visual C++ . Майкрософт.
  46. ^ Стефан Т. Лававей (19 июня 2015 г.). «Функции C++ 14.11.17 в VS 2015 RTM» . Блог группы Visual C++ . Майкрософт.
  47. ^ Обзор автоматической вставки телеметрии Microsoft в двоичные файлы C++
  48. ^ «Visual Studio добавляет вызовы функций телеметрии в двоичный файл? • /r/cpp» . реддит . 7 мая 2016 года . Проверено 17 августа 2016 г.
  49. ^ Юлия Люсон (7 марта 2017 г.). «Объявление об общедоступной версии Visual Studio 2017… и многое другое» . Блог группы Visual Studio . Майкрософт.
  50. ^ Аманда Сильвер (14 февраля 2019 г.). «Присоединяйтесь к нам 2 апреля на презентации Visual Studio 2019!» . Блог группы Visual Studio . Майкрософт.
  51. ^ Аманда Сильвер (8 ноября 2021 г.). «Visual Studio 2022 теперь доступна» . Блог группы Visual Studio . Майкрософт.
  52. ^ «Предопределенные макросы компилятора/Вики/Компиляторы» . dev.to. ​22 мая 2018 года . Проверено 20 февраля 2023 г.
  53. ^ «Предопределенные макросы / Microsoft Learn» . Learn.microsoft.com . 8 августа 2022 г. Проверено 26 мая 2023 г.
  54. ^ Microsoft MSDN: Критические изменения в Visual C++
  55. ^ Microsoft MSDN: Контейнеры (современный C++)
  56. ^ Microsoft MSDN: переносимость в границах ABI (современный C++)
  57. ^ Форум Microsoft: Двоичная совместимость версий Visual C++. Архивировано 16 февраля 2013 г. на archive.today.
  58. ^ docs.microsoft.com: двоичная совместимость C++ между Visual Studio 2015, 2017 и 2019.
  59. ^ Перейти обратно: а б Библиотеки времени выполнения C
  60. ^ «Совместимость» . Microsoft: возможности библиотеки CRT . 26 октября 2022 г.
  61. ^ «Поддержка C99» . Майкрософт Коннект . Архивировано из оригинала 4 марта 2016 г. Проверено 21 сентября 2015 г.
  62. ^ «Новые возможности Visual C++ в Visual Studio 2013» . Сеть разработчиков Microsoft . Майкрософт. 28 апреля 2015 г.
  63. ^ Пэт Бреннер (19 июля 2013 г.). «Поддержка библиотеки C99 в Visual Studio 2013» . Блог группы Visual C++ . Майкрософт.
  64. ^ «Новые возможности Visual C++ в Visual Studio 2015» . Сеть разработчиков Microsoft . Майкрософт. 3 января 2018 г.
  65. ^ «Пошаговое руководство: компиляция программы на языке C в командной строке» . Документация по Visual C++ . Майкрософт. 10 мая 2022 г.
  66. ^ «MSVC 2017 не поддерживает _Generic (универсальные макросы типа) в C» .
  67. ^ Лувсанбат, Бат-Улзий (6 июля 2018 г.). «Прогресс препроцессора MSVC в направлении соответствия» . Блог группы Visual Studio . Майкрософт. Архивировано из оригинала 3 марта 2024 года.
  68. ^ «Функции и исправления C++20» . реддит . 3 июля 2020 г.
  69. ^ «Стандартная поддержка C11 и C17 поступает в MSVC» . 14 сентября 2020 г.
  70. ^ «C11 Atomics в Visual Studio 2022 версии 17.5, предварительная версия 2» . 2022-12-13.
  71. ^ «Потоки C11 в Visual Studio 2022 версии 17.8, предварительная версия 2» . 26 сентября 2023 г.
  72. ^ Мерфи, Адриан (14 ноября 2023 г.). «Visual Studio 17.8 теперь доступна!» . Блог Visual Studio . Проверено 12 января 2024 г.
  73. ^ «Поддержка двухфазного поиска имени появилась в MSVC» . 11 сентября 2017 г.

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

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: e6c7ed62273b4841daddc62dfaebfce8__1722005400
URL1:https://arc.ask3.ru/arc/aa/e6/e8/e6c7ed62273b4841daddc62dfaebfce8.html
Заголовок, (Title) документа по адресу, URL1:
Microsoft Visual C++ - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)