将vb.net类库导入vb6项目

时间:2011-12-19 14:32:57

标签: vb.net com vb6 com-interop

我创建了一个vb.net类库。它是存储设备的接口。它提供了一些对象和方法,以便向设备读取和写入数据。

问题是客户有一个vb6应用程序,我们想要添加类库的功能以操作设备。我已经将类更改为com类,检查了com interopt复选框并使用.net framework 2.0 regasm.exe注册了库。

我添加了库作为空白vb6项目的参考并创建了一个对象。

dim t as comlib.obj

该对象等于'无'

当我补充道:

t = new comlib.obj

 t = createobject("comlib.obj")

我收到以下错误:

  

运行时错误'2147024894(80070002)':自动化

我做错了什么?

2 个答案:

答案 0 :(得分:1)

只是调暗变量不会为其赋值(与.NET private TypeName variableName;相同),您需要先使用Set T = New Comlib.Obj创建它。

如果您收到错误,则需要使用标准调试技术来缩小范围,或者发布完整的错误消息,然后有人可以提供建议。

答案 1 :(得分:0)

我会说@Deanna有解决方案,但如果失败那么

我建议你需要在.NET程序集中查看你的构造函数,并确保这不会引发任何类型的运行时错误。

即使您的New Sub中有错误处理程序,也不会将其提升到VB6应用程序。

我遵循惯例将.NET构造函数保持在最低限度,然后使用其他方法执行构造代码(例如LoadData)。这样您就可以拥有适当的错误处理程序。如果抛出错误 - 它会正确地升级到VB6。