混在 (ネイティブおよびマネージ) アセンブリ

混在アセンブリは、アンマネージ マシン語命令と MSIL 命令の両方を含むことができます。これにより、混在アセンブリは、全体としてはアンマネージのコンポーネントとの互換性を維持しながら、.NET コンポーネントを呼び出したり、.NET コンポーネントから呼び出したりできます。混在アセンブリを使用すると、開発者は、マネージ機能とアンマネージ機能が混在したアプリケーションを作成できます。このため、混在アセンブリは、既存の Visual C++ アプリケーションを .NET プラットフォームに移行するのに理想的です。

たとえば、1 つのモジュールを /clr コンパイラ スイッチで再コンパイルするだけで、全体がアンマネージ関数で構成される既存のアプリケーションを .NET プラットフォームに移行できます。以降、このモジュールで .NET 機能を使用できるようになりますが、アプリケーションの残りの部分との互換性は維持されたままです。この方法を使用すると、アプリケーションを要素ごとに少しずつ .NET プラットフォームに変換できます。また、同じファイル内の関数ごとにマネージ コンパイルとアンマネージ コンパイルを決めることもできます。これについては、「managed, unmanaged」を参照してください。

Visual C++ では、混合、純粋、および検証可能の 3 種類のマネージ アセンブリの生成をサポートしています。後の 2 つについては、「純粋なコードと検証可能なコード (C++/CLI)」を参照してください。

このセクションの内容

混在アセンブリのコーディング ガイドラインの詳細については、MSDN の記事の「An Overview of Managed/Unmanaged Code Interoperability」(https://msdn.microsoft.com/ja-jp/netframework/default.aspx?pull=/library/ja-jp/dndotnet/html/manunmancode.asp) を参照してください。

参照

その他の技術情報

ネイティブと .NET の相互運用性