vba - VBA 中的运行时错误 429,但类已注册

标签 vba activex plc ms-access-2013 clsid

我正在尝试重新创建一个程序,该程序使用 javascript 打开与 PLC 的连接,然后在网页上显示各种信息。出于各种原因,我宁愿以 MS Access 的形式使用它,并且一直在努力寻找合适的 dll 来使用(Jet32X.dll,如果有人好奇的话)。我终于追踪到在 javascript 中调用的 CLSID 返回到 PLC 的注册类,并且我试图在 VB 代码中创建该对象。它不会比 Dim As New 行更进一步,但是,抛出运行时错误 429:“Active X 组件无法创建对象”。真希望我有更多关于原因的信息。
我知道该类(class)已注册,因为这是我最初找到它的方式。我知道 DLL 文件没有损坏,因为程序从 JS 版本运行良好。我偷偷怀疑这里存在某种不兼容问题,因为 PLC 和支持软件很旧,而且我正在使用 Microsoft Access 2013(及其相关的 VBA)。但是,我真的想不出验证这一点的好方法。有没有人有任何其他想法?是否还有其他原因导致此问题?

最佳答案

想通了;如果其他人遇到此类问题:
32 位 COM dll 将无法在 64 位应用程序中运行。如果您不想返回并重新安装您正在使用的任何应用程序的 32 位版本,最简单的解决方法之一是使用 dllhost.exe 作为代理。 你可以阅读一下它here ,但我发现了这个 tutorial更容易理解。

关于vba - VBA 中的运行时错误 429,但类已注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20335663/

相关文章:

excel - 无法设置两个工作表VBA的范围

vba - 在数据验证下拉列表中设置默认值

vba - Outlook VBA 将 .xls 附件转换为 .xlsx

c++ - 关于MFC开发的一些问题?

javascript - 如何检测客户端浏览器中是否启用了 ActiveX?

c# - OPC UA 证书链验证不完整 - OPC Foundation SDK

vba - 使用VBA迭代表中的所有行和列

javascript - 尝试填充 Lync Presence 时在 NPObject 上调用方法时出错

arduino - 西门子PLC与Arduino串口通信

c++ - Libnodave - 使用 TCP 连接的 daveStart() 错误