Interop Error 430类不支持自动化

时间:2013-11-08 08:48:16

标签: vb.net com vb6 com-interop typelib

我有一个我为Interop注册的VB.NET程序集。我在VB6项目中使用此程序集中的类。

在现有的VB6项目中,我添加了对类型库的引用并运行以下代码:

Dim vizDataSingleton As Vizual_Data.Singleton
Set vizDataSingleton = New Vizual_Data.Singleton

第二行错误“运行时错误430:类不支持自动化或不支持预期的接口”

但是,如果我启动一个空白的VB6项目并添加引用,则完全相同的代码可以正常工作。

我检查了vbp文件中对tlb的引用,它们都是相同的。

Reference=*\G{BDB20DDF-D3B7-4484-8950-35D67DED45EC}#4.2#0#..\Vizual.Data\Vizual.Data\bin\Debug\Vizual.Data.tlb#VMS Data Structure Library

我也试过使用后期绑定:

Set vizDataSingleton = CreateObject("Vizual.Data.Singleton")

“类型不匹配”的现有项目中的此错误,但在新项目中再次起作用

为什么在一个项目中失败但在另一个项目中工作的任何想法?

1 个答案:

答案 0 :(得分:0)

我最终找到了这个错误的原因。

我有另一个依赖于原始.NET程序集(Vizual_Lib)的.NET Interop程序集(Vizual_Data)。

在失败的VB6应用程序中引用了这两个,但我的新应用程序仅引用了Vizual_Data。重新编译Vizual_Lib解决了这个问题。

这是一个奇怪的错误,当使用Vizual_Data类而不是其他Vizual_Lib类时发生了失败。