/clr で構築された COM オブジェクト使用時における CLR シャットダウンの例外の回避Avoiding Exceptions on CLR Shutdown When Consuming COM Objects Built with /clr

シャット ダウン モードに入ると、共通言語ランタイム (CLR) とネイティブ関数には、CLR サービスへのアクセスが制限されます。Once the common language runtime (CLR) enters shutdown mode, native functions have limited access to CLR services. COM オブジェクトをコンパイルした Release を呼び出すしようとしています。 /clr、ネイティブ コードに CLR が遷移と遷移 (マネージ コードで定義) される:release 呼び出しに対応するマネージ コードに戻さします。When attempting to call Release on a COM object compiled with /clr, the CLR transitions to native code and then transitions back into managed code to service the IUnknown::Release call (which is defined in managed code). シャット ダウン モードにあるために、CLR はマネージ コードへのコールバックを防ぎます。The CLR prevents the call back into managed code since it is in shutdown mode.

これを解決するには、リリース メソッドから呼び出されるデストラクターがネイティブ コードだけを格納することを確認します。To resolve this, ensure that destructors called from Release methods only contain native code.

関連項目See also

混在 (ネイティブおよびマネージド) アセンブリMixed (Native and Managed) Assemblies