純粋なコードと検証可能なコード (C++/CLI)

.NET プログラミングのために、Visual Studio 2017 の Visual C++ では、/clr (共通言語ランタイムのコンパイル) コンパイラ オプションを使用した混合アセンブリの作成がサポートされています。 /clr:pure および /clr:safe オプションは Visual Studio 2015 では非推奨とされており、Visual Studio 2017 ではサポートされていません。 コードを安全または検証可能にする必要がある場合は、C# に移植することをお勧めします。

混合 (/clr)

混在アセンブリ (/clr でコンパイルされます) はアンマネージドとマネージドの両方の部分を含み、.NET の機能を利用できるようにする一方で、ネイティブ コードも保持しています。 このため、プロジェクト全体を書き直すことなく、.NET 機能を使用するようにアプリケーションやコンポーネントを更新できます。 Visual C++ を使用してこのようにマネージド コードとネイティブ コードを混在させる方法を、C++ Interop と呼びます。 詳しくは、「混在 (ネイティブおよびマネージド) アセンブリ」と「ネイティブと .NET の相互運用性」をご覧ください。

プラットフォーム呼び出しによるマネージド アセンブリからネイティブ DLL への呼び出しはコンパイルされますが、セキュリティ設定によっては実行時に失敗することがあります。

コンパイラは渡されますが確認不可能なアセンブリとなる 1 つのコーディング例があります。スコープ解決演算子を使用し、オブジェクト インスタンスを通じて仮想関数を呼び出す場合です。 (例: MyObj -> A::VirtualFunction();)。

関連項目