我创建了一个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)':自动化
我做错了什么?
答案 0 :(得分:1)
只是调暗变量不会为其赋值(与.NET private TypeName variableName;
相同),您需要先使用Set T = New Comlib.Obj
创建它。
如果您收到错误,则需要使用标准调试技术来缩小范围,或者发布完整的错误消息,然后有人可以提供建议。
答案 1 :(得分:0)
我会说@Deanna有解决方案,但如果失败那么
我建议你需要在.NET程序集中查看你的构造函数,并确保这不会引发任何类型的运行时错误。
即使您的New Sub中有错误处理程序,也不会将其提升到VB6应用程序。
我遵循惯例将.NET构造函数保持在最低限度,然后使用其他方法执行构造代码(例如LoadData)。这样您就可以拥有适当的错误处理程序。如果抛出错误 - 它会正确地升级到VB6。