Aracılığıyla paylaş


C++ kodunu yükseltmek için Visual Studio IDE araçları

Visual Studio, derleyici seçenekleri, kod çözümleme uyarıları ve Hızlı Düzeltmeler, Hızlı Bilgi ve gelişmiş kaydırma çubuğu gibi düzenleyici özellikleriyle eski C++ kodunu yükseltmenize yardımcı olur. "Eski kod" terimi şu kategorilerden herhangi birini ifade eder:

  • Daha önce Microsoft C++ derleyicisi (MSVC) tarafından izin verilen ancak hiçbir zaman C++ standardına uymayan kod.

    Uyumlu olmayan eski MSVC kodunu yükseltmek için derleyici seçeneğini açın /permissive- . Uyumlu olmayan kullanımların tüm örnekleri, kod düzenleyicisinde kırmızı dalgalı çizgiler ile altı çizili olarak gösterilir. Hata Listesi penceresindeki hata iletileri, hatayı düzeltmeye yönelik bir öneri içerir. Belgelerde yardım sayfasına gitmek için hata koduna tıklayın. Tüm hataları aynı anda düzeltmek pratik değilse, seçeneği açıp /permissive- bazı hataları düzeltip seçeneği yeniden kapatarak uyumsuz kodu aşamalı olarak yükseltebilirsiniz. Kod yeni geliştirmelerle derlenir ve geri dönüp kalan sorunları daha sonra düzeltebilirsiniz. /permissive- Uyumsuz MSVC kodu örnekleri için sayfaya bakın.

  • C++ standardının önceki bir sürümünde izin verilen ancak daha sonraki bir sürümde kullanım dışı bırakılan veya kaldırılan kod.

    Daha yeni bir dil standardına yükseltmek için C++ Dil Standardı seçeneğini istediğiniz standarda ayarlayın ve oluşan derleme hatalarını düzeltin. Genel olarak, standart dili veya /std:c++20olarak /std:c++17 ayarlamanızı öneririz. Daha yeni bir standarda yükseltilirken oluşan hatalar, seçeneği kullanılırken /permissive- oluşan hatalara bağlı değildir.

  • Standardın tüm sürümlerine uyan ancak artık modern C++'da en iyi yöntem olarak kabul edilmeen kod.

    Değişikliklerin önerildiği kodu belirlemek için Kod analizini çalıştırın.

Eski projeyi açma ve dönüştürme

Eski projeniz Visual Studio'nun eski bir sürümünü temel aldıysa, bunu Visual Studio 2017 veya Visual Studio 2019'da açabilirsiniz. Visual Studio, en son derleyici ve IDE özelliklerinin tümü için destekle bunu otomatik olarak geçerli proje şemasına dönüştürür.

Screenshot of the Upgrade a project dialog.

Daha fazla bilgi için bkz . Visual Studio'nun önceki sürümlerinden C++ projelerini yükseltme.

Kod tabanında arama

Bir kod tabanının yükseltilmesi genellikle birden çok dosyada arama içerir. Kod tabanınızdaki herhangi bir öğeyi aramak için Ctrl+T tuşlarına basarak Tümüne Git arama kutusunu açın.

Screenshot of the Go to all dialog.

Arama kapsamını daraltmak için, 1 harfli filtrelerden birini, ardından bir boşluk ve ardından aradığınız şeyi yazın.

Hata Listesi

İstediğiniz C++ Dil Standardı'nı ve diğer derleyici seçeneklerini (Proje>Özellikleri>Genel) ayarladıktan sonra, projenizi derlemek için Ctrl+Shift+B tuşlarına basın. Kodda çeşitli yerlerde kırmızı dalgalı çizgiler biçiminde bazı hatalar ve uyarılar görmeyi bekleyebilirsiniz. Hatalar Hata Listesi'nde de görünür. Belirli bir hata hakkında daha fazla bilgi için, belgelerde yardım sayfasına gitmek için hata koduna tıklayın. "C" ile başlayan hata kodları derleyici hatalarıdır. "MSB" ile başlayan kodlar, proje yapılandırmasıyla ilgili bir sorunu gösteren MSBuild hatalarıdır.

Screenshot showing compiler and MSBuild errors in Error List.

Belge Durumu Göstergesi

Düzenleyicinin en altındaki belge durumu göstergesi geçerli belgedeki hata ve uyarı sayısını gösterir ve bir uyarıdan/hatadan sonrakine doğrudan gitmenizi sağlar.

Document health indicator.

Çoğu durumda, Visual Studio değişiklik geçmişi ve uyumluluk geliştirmeleri hakkındaki belgelerde belirli bir hata hakkında daha fazla bilgi bulabilirsiniz.

Kodunuzu modernleştirmek için kod analizini kullanma

Yükseltme sırasında, kodun Microsoft Yerel Önerilen Kuralları'na en azından uyması için projenizde kod analizi çalıştırmanızı öneririz. Bu kurallar, Microsoft tarafından tanımlanan kuralların bir bileşimi ve C++ Temel Yönergelerinin bir alt kümesidir. Bunlara uygun olarak yaygın hata kaynaklarını büyük ölçüde azaltır veya ortadan kaldırırsınız ve aynı zamanda kodunuzun daha okunabilir olmasını ve dolayısıyla bakımının daha kolay olmasını sağlarsınız. Microsoft Yerel Önerilen Kuralları kullanılarak Kod Analizi varsayılan olarak etkindir. Proje>Özellikleri>Kod Analizi altında ek kuralları etkinleştirebilirsiniz. Kurallardan birini ihlal eden kod uyarı olarak işaretlenir ve kod düzenleyicisinde yeşil dalgalı çizgiyle altı çizilir. Sorunu açıklayan bir QuickInfo araç ipucu görmek için dalgalı çizginin üzerine gelin.

Screenshot of a Code analysis tooltip.

Hangi uyarıların görüntüleneceğini seçmek için Kod sütunundaki filtre simgesine tıklayın.

Screenshot of Code analysis filters in Error List.

Kod çözümleme hataları ve uyarıları, derleyici hataları gibi Hata Listesi'nde de görünür.

Screenshot of Code analysis warnings in Error List.

Etkin olan kuralları değiştirebilir ve özel kural kümeleri oluşturabilirsiniz. Kod Analizini kullanma hakkında daha fazla bilgi için bkz . C/C++ için kod analizine genel bakış.

Kodu modernleştirmek için Hızlı Eylemler'i kullanma

Kod düzenleyicisi bazı yaygın öneriler için Hızlı Eylemler sağlar. Ampul simgesi görüntülendiğinde, kullanılabilir Hızlı İşlemler'i görmek için ampule tıklayabilirsiniz.

Makroları constexpr işlevlerine dönüştürme

Aşağıdaki görüntüde, varsayılan anlamsal renklendirmeye sahip olan adlı AVERAGEmakronun kullanımı gösterilmektedir. Görüntüde, fare imleci üzerine geldiğinde görüntülenen QuickInfo araç ipucu da gösterilir:

Screenshot of a QuickInfo macro expansion.

Modern C++'ta makro kullanımı önerilmez çünkü Visual Studio makroları işlevlere dönüştürmeyi constexpr kolaylaştırır:

  1. Sağ tıklayın AVERAGE ve Tanıma Git'i seçin.

  2. Tornavida simgesine tıklayın ve Makroyu constexpr'ye dönüştür'ü seçin

    Screenshot of a Quick Action macro to constexpr.

Makro aşağıda gösterildiği gibi dönüştürülür:

Screenshot of a constexpr function.

Çağrısı AVERAGE artık işlev çağrısı olarak renklendirilir ve Hızlı Bilgi araç ipucu işlevin çıkarılmış türünü gösterir:

Screenshot of a constexpr function call.

Değişkenleri başlatma

Başlatılmamış değişkenler, ciddi hatalara yol açan rastgele değerleri barındırabilir. Kod analizi bu örnekleri işaretler ve düzenleyici bir Hızlı İşlem sağlar:

Screenshot of the pop-up for an uninitialized variable.

Ham dize sabit değerine dönüştürme

Ham dize değişmez değerleri, ekli kaçış karakterlerine sahip dizelere göre daha az hataya eğilimli ve yazması daha uygundur. Bir dizeye sağ tıklayın ve hızlı eylemler'i seçerek ham dize değişmez değerine dönüştürün.

Raw string literal.

Dize şu şekilde dönüştürülür: R"(C:\Users\bjarnes\demo\output.txt)".