2012-11-07 40 views
0

在我的C#WinForms应用程序中,我有一个使用旧的VB 6.0或可能是VC 6.0 ActiveX控件作为文本编辑器的子应用程序(如果已经使用了TXTextControl的旧ActiveX版本) 。 在VS IDE时,我关闭了此ActiveX控件这个孩子的应用程序,然后我关闭主应用程序,我得到这个错误:使用COM对象和RCW调试问题

enter image description here

有哪些技巧和想法,为你建议digigng这个并发现最新情况?如果我在VS IDE外运行我的应用程序,这不会发生。

回答

1

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

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