検証可能な純粋なコード (C +/cli CLI)Pure and verifiable code (C++/CLI)

.NET プログラミングに対して、Visual Studio 2017 の Visual C を使用して混在アセンブリの作成をサポート、 /clr (共通言語ランタイムのコンパイル)コンパイラ オプション。For .NET Programming, Visual C++ in Visual Studio 2017 supports the creation of mixed assemblies by using the /clr (Common Language Runtime Compilation) compiler option. /Clr: 純粋な/clr:safeオプションは Visual Studio 2015 で非推奨とされ、Visual Studio 2017 でサポートされていません。The /clr:pure and clr:safe options are deprecated in Visual Studio 2015 and unsupported in Visual Studio 2017. コードが安全なまたは、検証可能なをする必要がある場合に移植することをお勧めします。C#します。If your code needs to be safe or verifiable, then we recommend that you port it to C#.

混合 (/clr)Mixed (/clr)

混在アセンブリ (コンパイルした /clr)、アンマネージ両方を含めるし、.NET の機能を使用するようにできるので、管理対象のパーツには、ネイティブ コードも含めることができます。Mixed assemblies (compiled with /clr), contain both unmanaged and managed parts, making it possible for them to use .NET features, but still contain native code. このため、プロジェクト全体を書き直すことなく、.NET 機能を使用するようにアプリケーションやコンポーネントを更新できます。This allows applications and components to be updated to use .NET features without requiring that the entire project be rewritten. Visual C を使用して、この方法でマネージ コードとネイティブ コードを混在させると、C++ Interop は呼び出されます。Using Visual C++ to mix managed and native code in this fashion is called C++ Interop. 詳細については、次を参照してください。混在 (ネイティブおよびマネージ) アセンブリネイティブと .NET の相互運用性します。For more information, see Mixed (Native and Managed) Assemblies and Native and .NET Interoperability.

マネージ アセンブリから P/invoke を通じてネイティブ Dll への呼び出しでは、コンパイルされますが、セキュリティ設定によっては実行時に失敗する可能性があります。Calls made from managed assemblies to native DLLs via P/Invoke will compile, but may fail at runtime depending on security settings.

コンパイラは渡されますが確認不可能なアセンブリとなる 1 つのコーディング例があります。スコープ解決演算子を使用し、オブジェクト インスタンスを通じて仮想関数を呼び出す場合です。There is one coding scenario that will pass the compiler but that will result in an unverifiable assembly: calling a virtual function through an object instance using the scope resolution operator. たとえば、MyObj -> A::VirtualFunction(); のように指定します。For example: MyObj -> A::VirtualFunction();.

関連項目See also