Udostępnij przez


Narzędzia IDE programu Visual Studio do uaktualniania kodu C++

Program Visual Studio ułatwia uaktualnianie starszego kodu C++ za pomocą opcji kompilatora, ostrzeżeń analizy kodu i funkcji edytora, takich jak szybkie poprawki, szybkie informacje i rozszerzony pasek przewijania. Termin "starszy kod" odnosi się do dowolnej z następujących kategorii:

  • Kod, który był wcześniej dozwolony przez kompilator języka Microsoft C++ (MSVC), ale nigdy nie był zgodny ze standardem C++.

    Aby uaktualnić starszy, niezgodny kod MSVC, włącz opcję kompilatora /permissive- . Wszystkie wystąpienia niezgodnego użycia są podkreślone czerwonymi zygzakami w edytorze kodu. Komunikaty o błędach w oknie Lista błędów zawierają zalecenie dotyczące sposobu naprawiania błędu. Kliknij kod błędu, aby przejść do strony pomocy w dokumentacji. Jeśli naprawianie wszystkich błędów jednocześnie jest niepraktyczne, możesz uaktualnić niezgodny kod na etapach, włączając /permissive- opcję, naprawiając niektóre błędy, a następnie wyłączając opcję ponownie. Kod zostanie skompilowany przy użyciu nowych ulepszeń i będzie można wrócić i rozwiązać pozostałe problemy w późniejszym czasie. Zobacz stronę, aby zapoznać się /permissive- z przykładami niezgodnego kodu MSVC.

  • Kod, który był dozwolony we wcześniejszej wersji standardu C++, ale został przestarzały lub usunięty w nowszej wersji.

    Aby uaktualnić do nowszego standardu języka, ustaw opcję C++ Language Standard na żądany standard i napraw wszelkie zgłoszone błędy kompilacji. Ogólnie rzecz biorąc, zalecamy ustawienie standardu języka na /std:c++17 lub /std:c++20. Błędy zgłaszane podczas uaktualniania do nowszego standardu /permissive- nie są związane z błędami zgłoszonymi podczas korzystania z opcji.

  • Kod zgodny ze wszystkimi wersjami standardu, ale nie jest już uważany za najlepsze rozwiązanie we współczesnym języku C++.

    Aby zidentyfikować kod, w którym są zalecane zmiany, uruchom analizę kodu.

Otwieranie i konwertowanie starszego projektu

Jeśli starsze projekty są oparte na starszej wersji programu Visual Studio, nadal można załadować je w nowszej wersji i pracować nad nim, zachowując zgodność z poprzednimi wersjami. Gdy wszystko będzie gotowe do trwałego przejścia do nowej wersji programu Visual Studio, możesz ponownie uruchomić projekty. Umożliwi to korzystanie z najnowszych narzędzi kompilacji i funkcji projektowych w IDE, ale nie będzie już można załadować przekierowanych projektów w starszej wersji programu Visual Studio.

Aby ponownie uruchomić projekty w formacie programu Visual Studio 2026, możesz użyć asystenta ustawień, który jest wyświetlany po raz pierwszy podczas otwierania rozwiązania zawierającego starsze projekty. Możesz również uzyskać do niego dostęp, klikając rozwiązanie prawym przyciskiem myszy w Eksploratorze rozwiązań i wybierając pozycję Rozwiązanie Retarget.

Zrzut ekranu przedstawiający asystenta ustawień programu Visual Studio 2026 z listą projektów wybranych do ponownego dostosowywania do najnowszych narzędzi MSVC Build Tools i zestawu narzędzi platformy w wersji v145.

Asystent konfiguracji umożliwia następnie pozostanie w starszej wersji i zainstalowanie brakujących narzędzi kompilacji lub zestawów SDK systemu Windows niezbędnych do skompilowania lub ponownego utworzenia projektów w celu ich uaktualnienia. Możesz dokonać wyboru przekierowania dla każdego projektu w rozwiązaniu lub wybrać opcję Przekieruj wszystkie i Zastosuj do uaktualnienia.

Aby uzyskać więcej informacji, zobacz Uaktualnianie projektów języka C++ z wcześniejszych wersji programu Visual Studio.

Lista błędów

Po ustawieniu żądanego standardu języka C++ i innych opcji kompilatora () naciśnij >, aby skompilować projekt. Można oczekiwać, że w różnych miejscach w kodzie pojawią się błędy i ostrzeżenia. Błędy są również wyświetlane na liście błędów. Aby uzyskać więcej informacji na temat określonego błędu, kliknij kod błędu, aby przejść do strony pomocy w dokumentacji. Kody błędów rozpoczynające się od "C" to błędy kompilatora. Kody rozpoczynające się od "MSB" to błędy MSBuild, które wskazują problem z konfiguracją projektu.

Zrzut ekranu przedstawiający błędy kompilatora i programu MSBuild na liście błędów.

Wskaźnik kondycji dokumentu

Wskaźnik kondycji dokumentu w dolnej części edytora pokazuje liczbę błędów i ostrzeżeń w bieżącym dokumencie i umożliwia przechodzenie bezpośrednio z jednego ostrzeżenia/błędu do następnego.

Wskaźnik kondycji dokumentu.

W wielu przypadkach więcej informacji na temat określonego błędu można znaleźć w dokumentacji dotyczącej historii zmian i ulepszeń zgodności programu Visual Studio.

Modernizuj kod przy użyciu analizy kodu

Podczas uaktualniania zalecamy uruchomienie analizy kodu w projekcie, aby kod był zgodny z co najmniej natywnymi regułami zalecanymi przez firmę Microsoft. Te reguły są kombinacją reguł zdefiniowanych przez firmę Microsoft i podzbiorem podstawowych wytycznych dotyczących języka C++. Dzięki zgodności z tymi elementami znacznie zmniejszysz lub wyeliminowasz typowe źródła usterek, a jednocześnie zwiększysz czytelność kodu i ułatwisz obsługę. Analiza kodu przy użyciu natywnych reguł zalecanych przez firmę Microsoft jest domyślnie włączona. Możesz włączyć dodatkowe reguły w obszarze Analiza kodu właściwości>projektu.> Kod, który narusza jedną z reguł, jest oflagowany jako ostrzeżenie i jest podkreślony zielonym wywiotkiem w edytorze kodu. Zatrzymaj wskaźnik myszy na przełączniku, aby wyświetlić etykietkę narzędzia QuickInfo opisjącą problem.

Zrzut ekranu przedstawiający etykietkę narzędzia Analiza kodu.

Kliknij ikonę filtru w kolumnie Kod , aby wybrać wyświetlane ostrzeżenia.

Zrzut ekranu przedstawiający filtry analizy kodu na liście błędów.

Błędy i ostrzeżenia analizy kodu są również wyświetlane na liście błędów, podobnie jak błędy kompilatora.

Zrzut ekranu przedstawiający ostrzeżenia analizy kodu na liście błędów.

Możesz zmienić, które reguły są aktywne, i utworzyć niestandardowe zestawy reguł. Aby uzyskać więcej informacji na temat korzystania z analizy kodu, zobacz Omówienie analizy kodu dla języka C/C++.

Modernizuj kod za pomocą szybkich akcji

Edytor kodu udostępnia szybkie akcje dla niektórych typowych zaleceń. Po wyświetleniu ikony żarówki możesz ją kliknąć, aby wyświetlić dostępne szybkie akcje.

Konwertowanie makr na funkcje constexpr

Na poniższej ilustracji przedstawiono użycie makra o nazwie AVERAGE, które ma domyślną semantyczną kolorację. Obraz przedstawia również etykietkę narzędzia QuickInfo wyświetlaną po umieszczeniu kursora myszy na nim:

Zrzut ekranu przedstawiający rozszerzenie makra QuickInfo.

Ponieważ korzystanie z makr jest odradzane we współczesnym języku C++, program Visual Studio ułatwia konwertowanie makr na constexpr funkcje:

  1. Kliknij prawym przyciskiem myszy AVERAGE i wybierz polecenie Przejdź do definicji.

  2. Kliknij ikonę śrubokręta, a następnie wybierz pozycję Konwertuj makro na constexpr

    Zrzut ekranu przedstawiający makro Szybkie działanie do constexpr.

Makro jest konwertowane, jak pokazano poniżej:

Zrzut ekranu przedstawiający funkcję constexpr.

Wywołanie metody AVERAGE jest teraz kolorowane jako wywołanie funkcji, a etykietka narzędzia Szybkie informacje pokazuje typ wywołania funkcji:

Zrzut ekranu przedstawiający wywołanie funkcji constexpr.

Inicjowanie zmiennych

Niezainicjowane zmienne mogą zawierać losowe wartości, które prowadzą do poważnych usterek. Analiza kodu flaguje te wystąpienia, a edytor udostępnia szybką akcję:

Zrzut ekranu przedstawiający wyskakujące okienko dla niezainicjowanej zmiennej.

Konwertowanie na literał nieprzetworzonego ciągu

Nieprzetworzone literały ciągu są mniej podatne na błędy i bardziej wygodne do wpisywania niż ciągi z osadzonymi znakami ucieczki. Kliknij prawym przyciskiem myszy ciąg i wybierz pozycję Szybkie akcje , aby przekonwertować go na nieprzetworzone literał ciągu.

Nieprzetworzone literał ciągu.

Ciąg jest konwertowany na: R"(C:\Users\bjarnes\demo\output.txt)".