0

我有一个旧的 COM 组件,我试图从 .NET Windows 窗体应用程序中使用它。我曾经aximp.exe为非托管 COM 组件创建一个 .NET 包装器。然后我使用ISupportInitialize接口BeginInitEndInit创建 COM 类的实例。这工作正常。但是当我尝试使用Marshal.ReleaseComObject非托管 C++ COM 对象的析构函数来销毁对象时,不会调用它。我也尝试过Marshal.FinalReleaseComObject,但仍然没有调用析构函数。谁能告诉我正确的方法是什么?

4

1 回答 1

0

包装器将实现IDispose.

WinForm 类通常具有一个组件集合和一个处理组件的 Dispose 方法。您可以将对象添加到组件集合中,它将与表单一起处理。(您甚至可以让表单设计器为您生成所有代码。)

如果您想更早地执行此操作,只需调用Dispose对象(例如在finally块中或通过using语句隐式调用)。

于 2013-04-12T06:03:02.443 回答