【问题标题】:ActiveX Can't Create ObjectActiveX 无法创建对象
【发布时间】:2012-04-03 16:01:18
【问题描述】:

在我的 vb6 dll 中,我不断收到此错误

代码:429
ActiveX 无法创建对象

这是我表单中的代码

Dim objAS400Price As New ReportTester.clsAS400PriceDiscr
Set objAS400Price = New ReportTester.clsAS400PriceDiscr
lngRetVal = objAS400Price.Report("AS400 Price Discrepancy Report", "AS400 Price Discrepancy Report", "C:\Temp", "Excel", "MASTERYY", "tschock", "NONE", "Local", True, "TSchock@ashleyfurniture.com")

这是来自 dll 的连接对象

Set objDBConn = CreateObject("DBConnections2.DataAccess")

我使用 regsvr32 在本地机器上注册了“DBConnections2.dll”,但错误仍然存​​在。关于为什么会发生这种情况的任何建议?

【问题讨论】:

  • 因为你注册了错误的DLL?或者您的 CreateObject 代码错误(或输入错误)?它可以是很多东西。查看 ActiveX 组件的工作示例,看看你做错了什么。如果无法访问您的系统,很难给您一个好的答案。

标签: vb6


【解决方案1】:

我建议您通过菜单项 Project->References 临时添加对“DBConnections2.dll”的硬引用。您应该在引用列表中看到 DLL 并能够选择它。如果没有,请单击“浏览”按钮并添加它。

现在创建一个早期绑定引用,而不是使用“CreateObject”。通过单步执行调用此 DLL 的函数,您可能能够辨别出哪个对象没有被引用。

但是,如果您仍然无法找到错误引用的根源,则“DBConnections2.dll”可能引用了您丢失或未注册的一个或多个相关 DLL。在这种情况下,您可以使用 Dependency Walker 应用程序打开 DLL 并确定哪些 DLL 引用被列为缺失。

Dependency Walker 可作为 Visual Basic 6 的可选工具安装。如果您愿意,也可以单独下载。

【讨论】:

    猜你喜欢
    • 2013-10-22
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 2018-01-22
    • 2011-08-15
    • 1970-01-01
    相关资源
    最近更新 更多