Important
C++/CLI は、.NET の初期 (2003 年から 2010 年) に設計されたテクノロジであり、互換性のために引き続きサポートされています。 これは、既存のコードベース、特に .NET Framework から .NET Core に移行されるコードベース、または .NET Framework を超えて進化する可能性が低い大規模なレガシ システムを維持する場合に最適です。
C++/CLI は信頼性と堅牢性を備えていますが、継続的な機能を確保するために必要な機能以外の新機能は計画されていません。 開発者は、C++/CLI を使用すると、C++ 言語と .NET 言語の両方がペシミライズされます。これは、設計時に使用できる言語機能と API (つまり、ISO C++11 および .NET Core より前) によって制約されるためです。 C++/CLI は C++98 に基づいて設計されており、 その ECMA 標準 は C++11 以降の新しい C++ 標準に対応するように更新されていません。 C++11 の一部の機能が組み込まれていますが、C++20 や C++23 などのより新しい標準の多くの機能では、マネージド コードへのコンパイルに対する C++/CLI での直接のサポートはありません。 詳細については、「 C++20 のサポートは C++/CLI に関する情報」を参照してください。
新しいプロジェクトでは、 https://github.com/dotnet/ClangSharp や https://www.swig.org/など、最新のサードパーティの代替手段を検討することをお勧めします。これにより、現在の言語およびランタイム機能との柔軟性が向上し、より適切に調整されます。
C++/CLI はマネージド C++ に取って代わられます。 C++/CLI は、.NET をサポートするように C++ を拡張する Microsoft によって作成された言語仕様です。 Windows でのみサポートされています。 WinUI またはユニバーサル Windows プラットフォーム UWP Windows ランタイム (WinRT) アプリを記述するためのものではありません。 これは、.NET 上で実行される .NET アプリケーションとコンポーネントを記述するためのものです。 C++/CLI は、ネイティブ C++ コードとマネージド コードの間のブリッジです。 これにより、.NET アプリケーションで既存の C++ ライブラリを使用し、C++ で新しい .NET アプリケーションを記述できます。
Microsoft では、WinUI アプリと WinRT アプリを記述するための C++/WinRT を提供しています。 これは、Windows ランタイム (WinRT) API 用の完全に標準的な最新の C++17 言語プロジェクションです。 Windows ランタイム (WinRT) で C++ を使用する方法の詳細については、「 C++/WinRT」を参照してください。
既定で、Visual Studio 2015 で作成された CLR プロジェクトは .NET Framework 4.5.2 を対象とします。 新しいプロジェクトを作成する際には、.NET Framework 4.6 をターゲットにできます。
[新しいプロジェクト] ダイアログの上部中央にあるドロップダウン リストでターゲット フレームワークを変更します。 既存のプロジェクトのターゲット フレームワークを変更するには、プロジェクトを閉じて、プロジェクト ファイル (.vcxproj) を編集し、ターゲット フレームワークのバージョンの値を 4.6 に変更します。 変更は、プロジェクトを次回開くときに有効になります。
Visual Studio 2017 では、既定のターゲット .NET Framework は 4.6.1 です。 Framework バージョン セレクターは、[新しいプロジェクト] ダイアログの下部にあります。
Visual Studio 2017 で C++/CLI サポートをインストールする
Visual Studio で C++ ワークロードをインストールしても、C++/CLI 自体は既定ではインストールされません。 Visual Studio のインストール後にコンポーネントをインストールするには、Windows の [スタート] メニューを選択し、Visual Studio インストーラーを検索して、Visual Studio インストーラーを開きます。 インストールされている Visual Studio のバージョンの横にある [変更] ボタンを選択します。 [個々のコンポーネント] タブを選択します。[コンパイラ、ビルド ツール、およびランタイム] セクションまで下にスクロールし、[C++/CLI サポート] を選択します。 [変更] を選択して、必要なファイルをダウンロードし、Visual Studio を更新します。
Visual Studio 2019 では、.NET Core プロジェクトの既定のターゲット フレームワークは 5.0 です。 .NET Framework プロジェクトの場合、既定のターゲットは 4.7.2 です。 新しい .NET Framework バージョン セレクターは、[新しいプロジェクトの作成] ダイアログの [新しいプロジェクトの構成] ページに表示されます。
Visual Studio 2019 で C++/CLI サポートをインストールする
Visual Studio で C++ ワークロードをインストールしても、C++/CLI 自体は既定ではインストールされません。 Visual Studio のインストール後にコンポーネントをインストールするには、Windows の [スタート] メニューを選択し、Visual Studio インストーラーを検索して、Visual Studio インストーラーを開きます。 インストールされている Visual Studio のバージョンの横にある [変更] ボタンを選択します。 [個々のコンポーネント] タブを選択します。[コンパイラ、ビルド ツール、およびランタイム] セクションまで下にスクロールし、[v142 ビルド ツールの C++/CLI サポート (最新)] を選択します。 [変更] を選択して、必要なファイルをダウンロードし、Visual Studio を更新します。
Visual Studio 2022 では、.NET Core プロジェクトの既定のターゲット フレームワークは 6.0 です。 .NET Framework プロジェクトの場合、既定のターゲットは 4.7.2 です。 新しい .NET Framework バージョン セレクターは、[新しいプロジェクトの作成] ダイアログの [新しいプロジェクトの構成] ページに表示されます。
Visual Studio 2022 で C++/CLI サポートをインストールする
Visual Studio で C++ ワークロードをインストールしても、C++/CLI 自体は既定ではインストールされません。 Visual Studio のインストール後にコンポーネントをインストールするには、Windows の [スタート] メニューを選択し、Visual Studio インストーラーを検索して、Visual Studio インストーラーを開きます。 インストールされている Visual Studio のバージョンの横にある [変更] ボタンを選択します。 [個々のコンポーネント] タブを選択します。[コンパイラ、ビルド ツール、およびランタイム] セクションまで下にスクロールし、[v143 ビルド ツールの C++/CLI サポート (最新)] を選択します。 [変更] を選択して、必要なファイルをダウンロードし、Visual Studio を更新します。
このセクションの内容
C++/CLI タスク
ネイティブと .NET の相互運用性
純粋なコードと検証可能なコード (C++/CLI)
正規表現 (C++/CLI)
ファイル処理と I/O (C++/CLI)
グラフィック操作 (C++/CLI)
Windows の操作 (C++/CLI)
ADO.NET によるデータ アクセス (C++/CLI)
他の .NET 言語との相互運用性 (C++/CLI)
シリアル化 (C++/CLI)
マネージド型 (C++/CLI)
リフレクションの問題 (C++/CLI)
厳密名アセンブリ (アセンブリ署名) (C++/CLI)
Debug クラス (C++/CLI)
STL/CLR ライブラリ リファレンス
C++ サポート ライブラリ
C++/CLI の例外
ボックス化 (C++/CLI)