0

.NET Windows フォーム アプリケーションから使用しようとしている従来の COM コンポーネントがあります。以前aximp.exeは、アンマネージ COM コンポーネント用の .NET ラッパーを作成していました。次に、ISupportInitializeインターフェイスのBeginInitandを使用EndInitして、COM クラスのインスタンスを作成します。これはうまくいっています。しかしMarshal.ReleaseComObject、アンマネージ C++ を使用してオブジェクトを破棄しようとすると、COM オブジェクトのデストラクタが呼び出されません。私も試しMarshal.FinalReleaseComObjectましたが、まだデストラクタが呼び出されていません。誰がそれを行う正しい方法を教えてもらえますか?

4

1 に答える 1

0

ラッパーは を実装しIDisposeます。

通常、WinForm クラスには、コンポーネント コレクションと、コンポーネントを破棄する Dispose メソッドがあります。コンポーネント コレクションにオブジェクトを追加すると、フォームと共に破棄されます。(フォーム デザイナーにすべてのコードを生成させることもできます。)

以前に実行したい場合はDispose、オブジェクトを呼び出すだけです (ブロック内またはステートメントfinallyを介して暗黙的に)。using

于 2013-04-12T06:03:02.443 に答える