Visual C++ | |
---|---|
![]() | |
Basisdaten | |
Entwickler | Microsoft |
Erscheinungsjahr | 1993 |
Aktuelle Version | 14.42.34433.0[1] (6. November 2024) |
Betriebssystem | Microsoft Windows |
Programmiersprache | C++ |
Kategorie | Compiler |
Lizenz | Freeware, Shareware |
docs.microsoft.com/cpp/ |
Microsoft Visual C++ (Abkürzung: MSVC) ist einCompiler des UnternehmensMicrosoft zur Entwicklung von Software in der ProgrammierspracheC++ unter dem BetriebssystemWindows und anderen Betriebssystemen von Microsoft.
Aktuelle Versionen von Visual C++ verfügen über den erweiterten C++-BefehlssatzC++/CLI, der unter anderem die Nutzung der.Net-Framework-Programmierung vereinfachen soll.
Visual C++ Produkte wurden als grafische Entwicklungswerkzeuge konzipiert und werden daher meist zusammen mit einerEntwicklungsumgebung ausgeliefert. Diese war anfangs auf die reine C++ Entwicklung ausgelegt und unterschied sich von anderenIDEs wie jenen vonVisual Basic oderJava.
Durch die .NET Strategie wurden mitVisual Studio 2002 alle unterstützten Sprachen (C++,C#,VB.NET) in einer einzigen grafischen Entwicklungsumgebung zusammengefasst. Visual C++ ist seither ein Bestandteil vonVisual Studio.
AlleVisual Studio Professional undVisual Studio Enterprise Produkte enthalten seit ihrer Einführung eine vollständige Visual C++ Umgebung mit allen Plattform-Toolsets und den aktuellen Bibliotheksversionen vonMFC,ATL und weiteren Programmierschnittstellen für den Unternehmensbereich.[2]
Von Version 2005 bis 2010 war Visual C++ als kostenlose separateExpress Edition mit eigener eingeschränkterIDE aber ohne die anderen Visual Studio Sprachen verfügbar.[3] Für weitere Sprachen wurden eigene Express-Produkte angeboten, wie z. B.:Visual C# Express,Visual Basic Express oderVisual J# Express.
Von 2012 bis 2017 existierte Visual C++ innerhalb vonVisual Studio Express für Desktop neben C# und Visual Basic in einer ebenfalls eingeschränkten Umgebung.
Das separat kostenlos herunterladbareWindows Platform SDK (heuteWindows SDK genannt) ist ebenfalls mit einem Visual C++ Compiler ausgestattet, dem jedoch eine grafische Entwicklungsumgebung fehlt.
Ab 2013 starteten mitVisual Studio Community und denBuild Tools für Visual Studio zwei weitere Produktserien, die Visual C++ bereitstellen. DieCommunity Edition löste dieExpress Editionen als kostenlose grafische Umgebungen ab, während dieBuild Tools nur die Compiler Toolsets ohne grafische Werkzeuge installierten um für automatische Build-Prozesse eingesetzt zu werden, wie z. B.: inDocker Containern.
Die aktuelle Version von Visual C++ ist Bestandteil der EntwicklungsumgebungMicrosoft Visual Studio 2022. Sie ist in den kostenpflichtigen VariantenProfessional,Enterprise undTest Professional erhältlich und kostenfrei alsCommunity Edition oder über dieBuild Tools für Visual Studio beziehbar.[4]
Aus Marketinggründen trugen die Versionen 2002 und 2003 das Kürzel .NET als Zusatz im Namen. 2005 kam Microsoft von diesem Benennungsschema wieder ab.
Die kostenpflichtigenProfessional undEnterprise Editionen vonVisual Studio richten sich an professionelle Entwickler und Unternehmen für die Herstellung von kommerzieller Software. Sie enthalten zahlreiche Vorlagen für verschiedene Visual C++ basierte Projekte und sind durchPlugins beliebig erweiterbar. Bei Problemen können Entwickler den technischen Support von Microsoft in Anspruch nehmen.[5]
Die kostenlosenVisual C++ Express Editionen waren für den Einstieg in die Programmierung und kleine Projekte vorgesehen. Deren Entwicklungsumgebungen waren stark eingeschränkt und die installierten Compiler Toolsets deckten weniger Plattformen als die kostenpflichtigen Varianten ab (z. B.: anfangs nurWin32, später zusätzlichWin64). Auch fehlten Bibliotheken für die WinAPI Anbindung oderMFC und ATL. Diese wurden jedoch in späteren Editionen teilweise ergänzt. Der Einsatz von Express Editionen für die Schaffung kommerzielle Produkte istnicht untersagt.[6] Ein Umstieg von den Express zu den Professional und Enterprise Editionen war jederzeit möglich, da kompatible Dateiformate benutzt wurden.
MitVisual Studio Community wurde ein Großteil aller vorher nur kostenpflichtig erhältlichen Funktionen freigegeben. Die Community Lizenz gestattet die Arbeit an privaten, gemeinnützigen undOpen-Source-Projekten, schließt aber die kommerzielle Nutzung in Unternehmen ab einem bestimmten Umsatz aus.[7] Die somit freie Verfügbarkeit von Visual C++ trug zur Verbreitung des Compiler bei ohne das Geschäftsmodell der kostenpflichtigen Produkte zu beeinträchtigen.
Die Version 1.0 von Visual C++ erschien 1993 fürWindows 3.1. Sie war als Nachfolger vonMicrosoft C/C++ fürDOS vorgesehen. Version 2.0 von 1994 sollte als erste reine 32-Bit-Version den Umstieg aufWindows 9x vorbereiten. Version 4.0 führte die neue Integrierte EntwicklungsumgebungDeveloper Studio ein.
Die Versionen ab 2002 sind in der Lage, außer derMFC noch auf .NET basierende Projekte zu erstellen. Die ursprünglich „Managed C++“ genannten Spracherweiterungen wurden stark überarbeitet und stehen ab Version 2005 von Visual C++ alsC++/CLI zur Verfügung.
Seit 2012 ist die Entwicklung vonWindow Store Apps möglich, die nicht auf demWin32-API, sondern auf der neuenWindows Runtime Schnittstelle aufbauen. Ab 2015 werden alle neuenAPI Modelle durch dieUniversal Windows Platform zusammengefasst, die ebenfalls durch Visual C++ programmiert werden kann. Eine Spracherweiterung namensC++/CX ermöglicht hierbei den einfachen Zugang zu Windows Runtime Funktionen. Alternativ kann über die Windows Runtime C++ Template Library (WRL) mit Standard-C++ ebenso auf die Windows Runtime Umgebung zugegriffen werden.
Seit Version 2022 werden nur noch 64-Bit-Versionen von Visual Studio veröffentlicht. Neu hinzugekommen ist die native Unterstützung vonARM64 als Hostplattform für Visual Studio unterWindows 11, in der nativer C++ Code auf ARM64Hardware entwickelt und ausgeführt werden kann. (Debugging von ARM32 und ARM64 Code war zuvor nur perRemote-Debugger von einem x86-Studio aus möglich). Mit dem zusätzlichen ARM64EC Binärstandard ab Visual Studio 2022 17.4 steht eine Brückentechnologie zwischen x86-64 und ARM64 bereit, die der Softwaremigration von X86 hin zur ARM Plattform dienen soll.[8]
Die Visual C++ Versionierung liegt in bis zu 3 unterschiedlichen Varianten vor:[9]
_MSC_VER
Versionsmakro als hochgezählte Ganzzahl, die innerhalb von C/C++ Codes benutzt werden kann, um den Compiler zu erkennen und neue Funktionen einzubinden. Visual C++ 1.0 beginnt bei_MSC_VER
800
als Nachfolger von Microsoft C/C++ 7.0 mit einer_MSC_VER
von700
.Titel | Version | _MSC_VER | Datum | Neue Funktionen |
---|---|---|---|---|
Visual C++ 1.0 | 1.0 | 800 | Februar 1993 | erste Version, fürMicrosoft Windows 3.1, in der Professional-Version auch fürDOS. Die Standard-Version ersetzteQuickC for Windows 1.0. Die Professional-Version ersetzteMicrosoft C/C++ 7.0. |
Visual C++ 1.0 32-Bit-Edition | 1.0 | 800 | August 1993 | fürMicrosoft Windows NT 3.1, nur für x86 |
Visual C++ 1.5 | 1.5 | 800[10] | Dezember 1993[11][12] | letzte Version, die selber unterMicrosoft Windows 3.1 lauffähig ist und 16-Bit-Programme erzeugen kann |
Visual C++ 2.0 | 2.0 | 900 | Oktober 1994[13] | fürMicrosoft Windows NT 3.5 (unterstützt x86, MIPS und Alpha-Prozessoren), MFC 3.0, unterstützt Windows 3.x nur noch viaWin32s, erste Version fürMacintosh (nurMotorola-68000-Prozessoren) |
Visual C++ 4.0 | 4.0 | 1000 | September 1995[14] | fürMicrosoft Windows NT 3.51 und erstmalsMicrosoft Windows 95, MFC 4.0, neue Integrierte EntwicklungsumgebungDeveloper Studio, erste Version fürPowerPC-Prozessoren, enthielt auch eine CD mit Visual C++ 1.52 für 16-Bit-Rückwärtskompatibilität. Die Standard-Version enthält vergleichbar zu QuickC keinen optimierenden Compiler.[15] |
Visual C++ 4.1 | 4.1 | 1010 | für Microsoft Windows NT 3.51 und Microsoft Windows 95, erste Version mit Microsoft GameSDK (später umbenannt inDirectX), letzte Version mit Unterstützung für MIPS-Prozessoren und Win32s, nur als Update für MSDN-Abonnenten erhältlich gewesen | |
Visual C++ 4.2 | 4.2 | 1020 | September 1996 | fürMicrosoft Windows NT 4.0 und Microsoft Windows 95, MFC 4.2 mit Unterstützung fürActiveX, letzte Version mit Unterstützung für Macintosh und fürPowerPC-Prozessoren |
Visual C++ 5.0 | 5.0 | 1100 | April 1997[16] | für Microsoft Windows NT 4.0 und Microsoft Windows 95, modernisierte Entwicklungsumgebung, MFC 4.21 |
Visual C++ 6.0 | 6.0 | 1200 | Dezember 1998 | für Microsoft Windows NT 4.0 undMicrosoft Windows 98 sowie das kommendeWindows 2000, MFC 6.0, letzte Version für Alpha-Prozessoren |
Visual C++ .NET 2002 | 7.0 | 1300 | 2002 | fürMicrosoft Windows XP, erstmalige Unterstützung für.NET-Projekte (1.0), Managed C++ |
Visual C++ .NET 2003 | 7.1 | 1310 | 2003 | Verbesserte C++03 Unterstützung, .NET 1.1 |
Visual C++ 2005 | 8.0 | 1400 | November 2005 | C++/CLI, .NET 2.0 |
Visual C++ 2008 | 9.0 | 1500 | November 2007 | fürMicrosoft Windows Vista, .NET 3.5, SP1 beinhaltet TR1 (Vorschau auf C++11 Bibiliotheksfunktionen)[17] |
Visual C++ 2010 | 10.0 | 1600 | April 2010 | fürMicrosoft Windows 7, .NET 4.0, teilweise C++11 Unterstützung, verbessertes C++ Parsing für IntelliSense[18] |
Visual C++ 2012 | 11.0 | 1700 | April 2012 | fürMicrosoft Windows 8, .NET 4.5,App-Store Unterstützung, verbesserte C++11 Unterstützung[19] |
Visual C++ 2013 | 12.0 | 1800 | Oktober 2013 | fürMicrosoft Windows 8.1, .NET 4.5.1, erstmalsC99 Unterstützung[20], weiter verbesserte C++11 Unterstützung[21] |
Visual C++ 2015 | 14.00 | 1900 | Juli 2015 | fürMicrosoft Windows 10,Android undiOS als Zielplattformen, C++14 Unterstützung, einige C++17 Features[22] |
Visual C++ 2017 | 14.10 | 1910 | März 2017 | fürMicrosoft Windows 10,.NET Core, C++17 Unterstützung, teilweise C11 Unterstützung[23] |
Visual C++ 2019 | 14.20 | 1920 | April 2019 | fürMicrosoft Windows 10, teilweise C++20 Unterstützung,CMake Integration[24], teilweise C11 und C17 Unterstützung[25] |
Visual C++ 2022 | 14.30 | 1930 | November 2021 | fürMicrosoft Windows 11, erstmals nur für64-Bit-Hosts verfügbar, mit Version 17.4 wurde die erste nativeARM64-Variante für Windows 11 ARM64 veröffentlicht.[26] |
Ab Visual Studio 2015 v14.0 wird das Visual C++ Compiler-Toolset im Verhältnis zur Visual Studio Version unterschiedlich hochgezählt. Während die Studio Hauptversion erhöht wird und die Nebenversion Updates abbildet, ist die Hauptversion des C++ Toolsets aktuell auf14
festgesetzt und die Nebenversion bildet in Zehnerschritten die Hauptversion des Studio Produktes ab.
Eine neuere Version von Visual Studio kann mit älteren Versionen des Toolsets betrieben werden.
Beispiel: Studio 2022 v17 Projekt kompiliert mit Toolset 14.10 (von Studio 2017 v15).
Titel | Studio Version | C++ Toolset Version | _MSC_VER |
---|---|---|---|
Visual Studio 2015 | 14.x | 14.0x | >= 1900 |
Visual Studio 2017 | 15.x | 14.1x | >= 1910 |
Visual Studio 2019 | 16.x | 14.2x | >= 1920 |
Visual Studio 2022 | <=17.9.x | 14.3x | >= 1930 |
Visual Studio 2022 | >=17.10.x | 14.4x | >= 1940 |
Die vollständige Unterstützung der einzelnen C++ Standards ist nicht eindeutig an die Jahreszahlen der Produktveröffentlichungen von Visual C++ gebunden.
Eine Visual C++ Compilerversion kann bereits Entwürfe von Funktionen beinhalten, die erst später in einem C++ Standard veröffentlicht werden (z. B.: VC++ 2010 enthielt bereits einige C++11 Features). Parallel dazu werden manche Funktionen erst spät (teilweise erst nach vielen Jahren) oder gar nicht implementiert.[27]
Visual C++ unterstützte bis zur Version 2012 (v11) nur den originalen C90 Standard, wodurch viele modernere C-Projekte (Dateiendung.c
) nicht übersetzt werden konnten. Mit Visual C++ 2013 (v12) kam erstmals C99 Support hinzu und seit Visual C++ 2017 (v14.1) wird schrittweise der C11 und C17 Support ausgebaut.