为什么我对来自C#app的VB6 ActiveX DLL的调用失败了"没有支持这样的接口"?

时间:2011-10-07 21:13:57

标签: c# interface vb6 activex

我有一个VB6 Active DLL,我试图从C#调用。

我使用tblimp将其转换并将其导入VS 2010。

然后我使用:

实例化它
AppWebActiveX.Users appWebActiveX = new appWebActiveX.Users();

当我查看对象浏览器时,有一个Users接口和一个UsersClass类。

然后我打电话给:

bool isExistingUser = appWebActiveX.IsExistingUser("cat");
根据对象浏览器,

bool IsExisting(string)是一种有效的方法。

然而,这会返回:

  

无法将“AppWebActiveX.UsersClass”类型的COM对象转换为接口类型“AppWebActiveX._Users”。 ......没有支持这样的界面...

最新的堆栈调用是System.StubHelpers.StubHelpers.GetCOMIPFromRCW。

我在Windows Server 2003标准版(x86 - 32位)上运行该应用程序,它是一个32位DLL。我正在使用C#控制台应用程序拨打电话。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

原来我省略了main方法的[STAThread]属性。