0

在我的 C# WinForms 应用程序中,我有一个子应用程序,它使用旧的 VB 6.0 或 VC 6.0 ActiveX 控件作为文本编辑器(如果您使用过 TXTextControl 的旧 ActiveX 版本)。在 VS IDE 中,当我关闭具有此 activeX 控件的子应用程序然后关闭主应用程序时,我收到此错误:

在此处输入图像描述

您建议使用哪些技术和想法来深入研究并发现正在发生的事情?如果我在 VS IDE 之外运行我的应用程序,则不会发生这种情况。

4

1 回答 1

1

关于如何将 COM 对象与 RCW 分离有多种可能性,但我不确定为什么这只会发生在 VS 调试器中。

  1. 您必须保留对 ActiveX\RCW 类的引用。(此外,如果您将引用保留为静态变量,我会看到问题,因此我建议不要将其保留在静态变量中)。例如:确保TXTextControl txControl = new TXTextControlClass();txContol应用程序期间拥有引用并且在范围内
  2. 在应用程序关闭或托管 AX 控件的表单被释放之前,您可能希望添加手动清理代码,并可能在持有 RCW 引用的类上实现 IDisposable。
  3. 如果您已将任何事件处理程序附加到 AX 控件,请确保它们在关闭 RCW 引用和应用程序之前退出。您可能还想手动分离处理程序。
于 2012-11-07T20:36:23.690 回答