Upgrade von C++-Projekten aus früheren Versionen von Visual Studio
Um ein Projekt zu aktualisieren, das in einer früheren Version von Visual Studio erstellt wurde, öffnen Sie einfach das Projekt in der neuesten Version von Visual Studio. Visual Studio bietet das Upgrade des Projekts auf das aktuelle Schema an.
Wenn Sie "Nein" auswählen, wird das Projekt nicht aktualisiert. Für Projekte, die in Visual Studio 2010 und höher erstellt wurden, können Sie das Projekt weiterhin in der neueren Version von Visual Studio verwenden. Legen Sie einfach Die Projekteigenschaften so fest, dass sie weiterhin auf das ältere Toolset ausgerichtet ist. Wenn Sie die ältere Version von Visual Studio auf Ihrem Computer belassen, ist dessen Toolset in späteren Versionen verfügbar. Wenn Ihr Projekt beispielsweise weiterhin unter Windows XP ausgeführt werden muss, können Sie ein Upgrade auf Visual Studio 2019 durchführen. Anschließend geben Sie das Toolset als v141_xp oder früher in den Projekteigenschaften an. Weitere Informationen finden Sie unter Use native multi-targeting in Visual Studio to build old projects (Verwenden der nativen Festlegung von Zielversionen in Visual Studio, um alte Projekte zu erstellen).
Wenn Sie "Ja" auswählen, wird das Projekt direkt aktualisiert. Sie kann nicht wieder in die frühere Version konvertiert werden. In Upgradeszenarien empfiehlt es sich daher, eine Sicherungskopie der vorhandenen Projekt- und Lösungsdateien zu erstellen.
Hinweis
Visual Studio 2022 verfügt über veraltete Unterstützung für das Upgrade von Projekttypen, die über oder .dsp
Erweiterungen verfügen.dsw
. Sie können eine frühere Version von Visual Studio, z. B. Visual Studio 2019, verwenden, um diese Projekte zu aktualisieren, und sie dann in Visual Studio 2022 aktualisieren, um die neuesten Tools und Features von Visual Studio zu verwenden.
Aktualisieren von Berichten
Wenn Sie ein Projekt aktualisieren, erhalten Sie einen Upgradebericht. Der Bericht wird auch im Projektordner als UpgradeLog.htm gespeichert. Der Upgradebericht zeigt eine Zusammenfassung der Probleme, die während der Konvertierung gefunden wurden. Es enthält einige Informationen zu änderungen, die vorgenommen wurden, einschließlich:
Projekteigenschaften.
Fügen Sie Dateien ein.
Code, der aufgrund von Compilerkonformitätsverbesserungen oder Änderungen im Standard nicht mehr sauber kompiliert wird.
Code, der auf Visual Studio- oder Windows-Features basiert, die nicht mehr verfügbar sind. Oder Headerdateien, die nicht in einer Standardinstallation von Visual Studio enthalten sind oder aus dem Produkt entfernt wurden.
Code, der aufgrund von Änderungen an APIs wie umbenannten APIs, geänderten Funktionssignaturen oder veralteten Funktionen nicht mehr kompiliert wird.
Code, der aufgrund von Änderungen an der Diagnose nicht mehr kompiliert wird, z. B. eine Warnung, die zu einem Fehler wird
Linkerfehler aufgrund von Bibliotheken, die geändert wurden, insbesondere, wenn /NODEFAULTLIB verwendet wird.
Laufzeitfehler oder unerwartete Ergebnisse aufgrund von Verhaltensänderungen.
Fehler, die in den Tools eingeführt wurden. Wenn Sie ein Problem finden, melden Sie es über Ihre normalen Supportkanäle oder mithilfe der Visual Studio C++-Entwicklercommunity-Seite an das Visual C++-Team.
Einige aktualisierte Projekte und Lösungen können ohne Änderungen erfolgreich erstellt werden. Die meisten Projekte erfordern jedoch wahrscheinlich Änderungen an den Projekteinstellungen und dem Quellcode. Es gibt keine einzige richtige Möglichkeit zum Beheben dieser Probleme, aber wir empfehlen die Verwendung eines phasenweisen Ansatzes. Bevor Sie beginnen, lesen Sie die Übersicht über potenzielle Upgradeprobleme , um weitere Informationen zu vielen Arten häufiger Fehler zu erhalten.
Legen Sie das Plattformtoolset, den C++-Sprachstandard und die Windows SDK-Version (falls zutreffend) auf die bevorzugten Versionen fest. (Project>Properties Configuration Properties>>General)
Wenn viele Fehler auftreten, können Sie einige Optionen vorübergehend deaktivieren, während Sie sie beheben. Verwenden Sie zum Deaktivieren der Option die
/permissive-
Konfigurationseigenschaften>von Project>Properties>C/C++.> Um die Codeanalyseoption zu deaktivieren, verwenden Sie die Codeanalyse von Project>Properties>Configuration Properties>.Stellen Sie sicher, dass alle Abhängigkeiten vorhanden sind und dass die Pfade oder Bibliotheksspeicherorte korrekt sind. (Project>Properties Configuration Properties>>VC++-Verzeichnisse)
Identifizieren und Beheben von Fehlern durch Verweise auf APIs, die nicht mehr vorhanden sind.
Beheben Sie alle verbleibenden Fehler, die die Kompilierung verhindern. Unter "Übersicht über potenzielle Upgradeprobleme" finden Sie Korrekturen für häufige Fehler.
Aktivieren Sie
/permissive-
alle neuen Fehler, die durch nicht konformen Code verursacht wurden, der zuvor in MSVC kompiliert wurde, und beheben Sie sie.Aktivieren Sie die Codeanalyse, um potenzielle Probleme oder veraltete Codierungsmuster zu identifizieren, die nicht mehr als akzeptabel angesehen werden. Wenn die Codeanalyse viele Fehler kennzeichnet, können Sie einige der Warnungen deaktivieren, um sich zuerst auf die wichtigsten zu konzentrieren. Die IDE kann bei Quick Fixes für einige Arten von Problemen helfen.
Berücksichtigen Sie andere Möglichkeiten zum Modernisieren des Codes. Ersetzen Sie beispielsweise benutzerdefinierte Datenstrukturen und Algorithmen durch benutzerdefinierte Datenstrukturen und Algorithmen aus der C++-Standardbibliothek oder durch die Open Source-Bibliothek "Boost". Durch die Verwendung von Standardfeatures erleichtern Sie es anderen Benutzern, den Code zu verwalten. Sie können sicher sein, dass dieser Code von vielen Experten im Standards committee und der breiteren C++-Community gut getestet und überprüft wurde.
Für schwer zu behebende Fehler können Sie nach Lösungen suchen oder eine Frage zu Microsoft Learn Q&A veröffentlichen. Bei Problemen im C++-Compiler und den Tools testen Sie die C++-Entwicklercommunity-Website.
In diesem Abschnitt
Überblick über potenzielle Upgradeprobleme (Visual C++)
Aktualisieren Ihres Codes auf die Universal CRT
Aktualisieren von WINVER und _WIN32_WINNT
Fix your dependencies on library internals (Beheben Ihrer Abhängigkeiten auf bibliotheksinternen Elementen)
Gleitkomma-Migrationsprobleme
In Visual Studio veraltete C++-Features
VCBuild im Vergleich zu MSBuild
Port-Drittanbieterbibliotheken
Siehe auch
Neuerungen bei Visual C++ in Visual Studio
Änderungsverlauf von Visual C++ von 2003 bis 2015
Nicht dem Standard entsprechendes Verhalten
Portdatenanwendungen