使用.Net Winform Application加载VB控件

时间:2016-05-13 18:41:43

标签: c# .net vb.net winforms

我使用AxHost实现在.net Winform应用程序中托管了一个COM activex控件,现在COM activex ocx控件在Visual Basics中实现。现在Vb代码实现了很少的COM接口,接口IABC就是其中之一。

我的VB代码如下:

implements IABC

public void YYYYY()
End Sub

public void ZZZZZ()
End Sub

现在使用C#代码

public class AxHostControl:AxHost
{
  public AxHostControl(string guid):base(guid)
  {
  }
}

在C#WinformUI应用程序

var m_axHost = new AxHostControl(ocx_guid);
this.Controls.Add(m_axHost);

然后,我试图将Ocx作为

var ocxObject =m_axHost.GetOcx();
var abcControl = (IABC)ocxObject;

在此期间,我致电abcControl.YYYYY();abcControl.ZZZZZ();

现在我的问题是,当abcControlComObject时,如果我使用m_axHost处置m_axHost.dispose();,则将从UI卸载ocx控件但是如何处置来自C#的COM对象abcControl否则会出现内存泄漏?

0 个答案:

没有答案