Visual C++ 移植およびアップグレード ガイド

この記事は、Microsoft C++ コードを最新バージョンの Visual Studio にアップグレードする際の指針となります。 Visual Studio 2010 から 2017 で作成されたプロジェクトの場合、Visual Studio 2019 でプロジェクトを開くだけです。 Visual Studio 2008 以前のプロジェクトは、2 つの手順でアップグレードできます。 まず、Visual Studio 2010 を使用して、プロジェクトを MSBuild 形式に変換します。 次に、Visual Studio 2019 でプロジェクトを開きます。 詳しい手順については、以前のバージョンの Visual Studio からの C++ プロジェクトのアップグレードに関する記事を参照してください。

Visual Studio 2015、Visual Studio 2017、Visual Studio 2019 のツールセットはバイナリ互換です。 ライブラリの依存関係をアップグレードしなくても、より新しいバージョンのコンパイラにアップグレードできます。 詳細については、「Visual Studio のバージョン間の C++ バイナリ互換性」を参照してください。

オープンソース ライブラリを使用するプロジェクト、または複数のプラットフォームで実行することを目的としたプロジェクトをアップグレードする場合は、CMake ベースのプロジェクトに移行することをお勧めします。 詳細については、「Visual Studio の CMake プロジェクト」を参照してください。

C++ コードをアップグレードする理由

レガシ アプリケーションがセキュリティで保護された環境で問題なく実行されており、現在開発中ではない場合、アップグレードしようという気にはあまりならないかもしれません。 ただし、アプリケーションに継続的なメンテナンスが必要な場合、 または新機能の開発やパフォーマンスあるいはセキュリティの改善に取り組んでいる場合は、アップグレードを検討してください。 アップグレードにはこれらの利点があります。

  • コンパイラの最適化が改善されているため、同じコードをより高速に実行できます。

  • C++ の最新の機能とプログラミング手法により、バグの多くの一般的な原因が排除され、古い C スタイルの表現形式よりもはるかに簡単に管理できるコードが生成されます。

  • コンパイラとリンカーのパフォーマンスが向上するため、ビルド時間が短縮されます。

  • 標準の準拠の向上。 /permissive- コンパイラ オプションを使用すると、現在の C++ 標準に準拠していないコードを特定できます。 新しいプリプロセッサでは、コードの適合性もサポートされています。

  • セキュリティが強化された C ランタイム ライブラリの機能など、ランタイムのセキュリティの向上。 ガード チェックやアドレス サニタイザー (Visual Studio 2019 バージョン 16.4 の新機能) などのコンパイラ機能。

複数バージョン対応とアップグレード

新しいツールセットへのコード ベースのアップグレードが選択肢にならない場合もあります。 最新の Visual Studio を使用して、古いツールセットとライブラリを使用するプロジェクトをビルドおよび編集することもできます。 Visual Studio 2019 では、次のような機能を利用できます。

  • C++ Core Guidelines チェッカーや Clang-Tidy などの最新の静的分析ツールは、ソース コードの潜在的な問題の特定に役立ちます。

  • 選択した最新のスタイルに従った自動書式を使用すると、レガシ コードをはるかに読みやすくすることができます。

詳細については、「Visual Studio でネイティブ マルチ ターゲットを利用し、古いプロジェクトを作成する」を参照してください。

このセクションの内容

Title 説明
以前のバージョンの Visual Studio からの C++ プロジェクトのアップグレード コード ベースを最新バージョンの Visual Studio およびコンパイラにアップグレードする方法。
C++ コードをアップグレードするための IDE ツール アップグレード プロセスで役立つ便利な IDE 機能。
Visual Studio バージョン間の C++ バイナリ互換性 v140 以降のプロジェクトから v140 以降のライブラリをそのまま使用します。
Visual Studio でネイティブ マルチ ターゲットを利用し、古いプロジェクトを作成する 古いコンパイラとライブラリで Visual Studio を使用します。
Visual C++ 2003 ~ 2015 の変更履歴 コードの変更が必要になる可能性のある、Visual Studio 2003 から 2015 の Microsoft C++ ライブラリとビルド ツールのすべての変更の一覧。
2003 から 2015 の Visual C++ の新機能 Visual Studio 2003 から Visual Studio 2015 の Microsoft C++ の "新機能" に関するすべての情報。
移植およびアップグレード: 例とケース スタディ このセクションでは、いくつかのサンプルとアプリケーションを移植してアップグレードし、エクスペリエンスと結果について説明しました。 これらの記事により、移植およびアップグレード プロセスに関与するものについて理解できます。 プロセス全体を通して、アップグレードに関するヒントとテクニックについて説明し、特定のエラーを修正する方法を示します。
ユニバーサル Windows プラットフォームへの移植 Windows 10 以降へのアプリ コードの移植に関する情報が含まれています。
Visual C++ の紹介 (UNIX ユーザー向け) Visual C++ を初めて使用し、生産性を向上したい UNIX ユーザー向けの情報を提供します。
Windows での Linux プログラムの実行 UNIX アプリケーションを Windows に移行するためのオプションについて説明します。

関連項目

Visual Studio での C++
Visual Studio での C++ コンパイラの新機能
Visual Studio の C++ 準拠の強化