Freigeben über


Visual Studio-IDE-Tools zum Aktualisieren von C++-Code

Visual Studio unterstützt Sie beim Upgrade von Legacy-C++-Code mit Compileroptionen, Codeanalysewarnungen und Editorfeatures wie Quick Fixes, Quick Info und der erweiterten Bildlaufleiste. Der Begriff "Legacycode" bezieht sich auf eine der folgenden Kategorien:

  • Code, der zuvor vom Microsoft C++-Compiler (MSVC) zugelassen wurde, aber nie dem C++-Standard entspricht.

    Um ältere nicht konformen MSVC-Code zu aktualisieren, aktivieren Sie die /permissive- Compileroption. Alle Instanzen nicht konformer Verwendungen werden mit roten Wellenstrichen im Code-Editor unterstrichen. Die Fehlermeldungen im Fenster "Fehlerliste " enthalten eine Empfehlung zum Beheben des Fehlers. Klicken Sie auf den Fehlercode, um zur Hilfeseite in der Dokumentation zu wechseln. Wenn alle Fehler gleichzeitig unpraktisch behoben werden, können Sie nicht konformen Code in Phasen aktualisieren, indem Sie die /permissive- Option aktivieren, einige Fehler beheben und dann die Option erneut deaktivieren. Der Code wird mit den neuen Verbesserungen kompiliert, und Sie können zu einem späteren Zeitpunkt zurückkehren und die verbleibenden Probleme beheben. Beispiele für nicht konformen MSVC-Code finden Sie auf der /permissive- Seite.

  • Code, der in einer früheren Version des C++-Standards zulässig war, aber in einer späteren Version veraltet oder entfernt wurde.

    Um auf einen neueren Sprachstandard zu aktualisieren, legen Sie die C++-Sprachstandardoption auf den gewünschten Standard fest, und beheben Sie alle kompilierten Fehler, die ausgelöst werden. Im Allgemeinen wird empfohlen, den Sprachstandard auf /std:c++17 oder /std:c++20. Die beim Upgrade auf einen neueren Standard ausgelösten Fehler beziehen sich nicht auf die Fehler, die bei Verwendung der /permissive- Option ausgelöst werden.

  • Code, der allen Versionen des Standards entspricht, wird jedoch nicht mehr als bewährte Methode in modernen C++ betrachtet.

    Um Code zu identifizieren, in dem Änderungen empfohlen werden, führen Sie die Codeanalyse aus.

Öffnen und Konvertieren eines Legacyprojekts

Wenn Ihre Legacyprojekte auf einer älteren Version von Visual Studio basieren, können Sie sie weiterhin in einer neueren Version laden und dort arbeiten, während die Abwärtskompatibilität mit der älteren Version beibehalten wird. Wenn Sie bereit sind, dauerhaft zur neuen Version von Visual Studio zu wechseln, können Sie Ihre Projekte neu ausrichten. Dadurch können Sie die neuesten Buildtools und Projektfeatures in der IDE verwenden, aber Sie können die neu zugewiesenen Projekte nicht mehr in der älteren Version von Visual Studio laden.

Um Projekte auf das Visual Studio 2026-Format umzuwandeln, können Sie den Setup-Assistenten verwenden, der erscheint, wenn Sie zum ersten Mal eine Lösung mit älteren Projekten öffnen. Sie können auch darauf zugreifen, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Lösung klicken und die Lösung neu ausrichten auswählen.

Screenshot des Visual Studio 2026-Setup-Assistenten mit einer Liste der Projekte, die für die Umstellung auf die neuesten MSVC Build Tools und das v145 Platform Toolset ausgewählt sind.

Der Setup-Assistent gibt Ihnen dann die Möglichkeit, entweder auf der älteren Version zu bleiben und alle fehlenden Buildtools oder Windows-SDKs zu installieren, die zum Erstellen erforderlich sind, oder die Projekte neu zu zuweisen, um sie zu aktualisieren. Sie können Retargeting-Einstellungen für jedes Projekt in der Projektmappe vornehmen oder "Alle retargeten>anwenden" auswählen, um ein Upgrade durchzuführen.

Weitere Informationen finden Sie unter Upgrade von C++-Projekten aus früheren Versionen von Visual Studio.

Fehlerliste

Nachdem Sie den gewünschten C++-Sprachstandard und alle anderen Compileroptionen (Project>Properties>General) festgelegt haben, drücken Sie STRG+UMSCHALT+B, um Ihr Projekt zu kompilieren. Sie können erwarten, dass einige Fehler und Warnungen in Form von roten Wellen in verschiedenen Stellen im Code angezeigt werden. Die Fehler werden auch in der Fehlerliste angezeigt. Wenn Sie weitere Informationen zu einem bestimmten Fehler wünschen, klicken Sie auf den Fehlercode, um zur Hilfeseite in der Dokumentation zu wechseln. Fehlercodes, die mit einem "C" beginnen, sind Compilerfehler. Codes, die mit "MSB" beginnen, sind MSBuild-Fehler, die auf ein Problem mit der Projektkonfiguration hinweisen.

Screenshot mit Compiler- und MSBuild-Fehlern in der Fehlerliste.

Dokumentintegritätsindikator

Der Dokumentintegritätsindikator unten im Editor zeigt die Anzahl der Fehler und Warnungen im aktuellen Dokument an und ermöglicht es Ihnen, direkt von einer Warnung/einem Fehler zum nächsten zu navigieren.

Dokumentintegritätsindikator.

In vielen Fällen finden Sie weitere Informationen zu einem bestimmten Fehler in der Dokumentation zum Änderungsverlauf und zur Konformitätsverbesserung von Visual Studio.

Verwenden der Codeanalyse zum Modernisieren des Codes

Beim Upgrade wird empfohlen, codeanalyse für Ihr Projekt auszuführen, damit der Code mindestens den empfohlenen Microsoft Native Rules entspricht. Diese Regeln sind eine Kombination von Regeln, die von Microsoft definiert wurden, und eine Teilmenge der C++-Kernrichtlinien. Durch die Einhaltung dieser Fehler reduzieren oder beseitigen Sie häufig auftretende Fehlerquellen, und gleichzeitig machen Sie Ihren Code besser lesbar und somit einfacher zu verwalten. Die Codeanalyse mit den microsoft nativen empfohlenen Regeln ist standardmäßig aktiviert. Sie können zusätzliche Regeln unter Project>> aktivieren. Code, der gegen eine der Regeln verstößt, wird als Warnung gekennzeichnet und mit einem grünen Wellenstrich im Code-Editor unterstrichen. Zeigen Sie mit der Maus auf die Wellenlinie, um eine QuickInfo-QuickInfo-QuickInfo anzuzeigen, die das Problem beschreibt.

Screenshot einer Codeanalyse-QuickInfo.

Klicken Sie in der Spalte "Code " auf das Filtersymbol, um auszuwählen, welche Warnungen angezeigt werden.

Screenshot der Codeanalysefilter in der Fehlerliste.

Codeanalysefehler und Warnungen werden auch wie Compilerfehler in der Fehlerliste angezeigt.

Screenshot der Codeanalysewarnungen in der Fehlerliste.

Sie können ändern, welche Regeln aktiv sind, und benutzerdefinierte Regelets erstellen. Weitere Informationen zur Verwendung der Codeanalyse finden Sie in der Übersicht über die Codeanalyse für C/C++.

Verwenden von Schnellen Aktionen zum Modernisieren von Code

Der Code-Editor bietet Schnelle Aktionen für einige allgemeine Empfehlungen. Wenn das Glühbirnensymbol angezeigt wird, können Sie darauf klicken, um die verfügbaren Schnellaktionen anzuzeigen.

Konvertieren von Makros in Constexpr-Funktionen

Die folgende Abbildung zeigt die Verwendung des Makros namens AVERAGE", das die Standardmäßige semantische Farbgebung aufweist. Die Abbildung zeigt auch die QuickInfo-QuickInfo-QuickInfo, die angezeigt wird, wenn der Mauszeiger darauf zeigt:

Screenshot einer QuickInfo-Makroerweiterung.

Da die Verwendung von Makros in modernen C++ abgeraten wird, erleichtert Visual Studio das Konvertieren von Makros in constexpr Funktionen:

  1. Klicken Sie mit der rechten Maustaste daraufAVERAGE, und wählen Sie "Gehe zu Definition" aus.

  2. Klicken Sie auf das Schraubenziehersymbol, und wählen Sie "Makro in constexpr konvertieren" aus.

    Screenshot eines Schnellaktionsmakros zu constexpr.

Das Makro wird wie unten dargestellt konvertiert:

Screenshot einer Constexpr-Funktion.

Der Aufruf der AVERAGE Funktion wird nun als Funktionsaufruf farblich dargestellt, und die Quick Info-QuickInfo zeigt den abgeleiteten Typ der Funktion an:

Screenshot eines Constexpr-Funktionsaufrufs.

Initialisieren der Variablen

Nicht initialisierte Variablen können Zufallswerte enthalten, die zu schwerwiegenden Fehlern führen. Codeanalyse kennzeichnet diese Instanzen, und der Editor bietet eine schnelle Aktion:

Screenshot des Popups für eine nicht initialisierte Variable.

Konvertieren in ein Rohzeichenfolgenliteral

Unformatierte Zeichenfolgenliterale sind weniger fehleranfällig und bequemer als Zeichenfolgen mit eingebetteten Escapezeichen. Klicken Sie mit der rechten Maustaste auf eine Zeichenfolge, und wählen Sie "Schnelle Aktionen " aus, um sie in ein unformatiertes Zeichenfolgenliteral zu konvertieren.

Unformatiertes Zeichenfolgenliteral.

Die Zeichenfolge wird in: R"(C:\Users\bjarnes\demo\output.txt)".