Dll “我如何解决?”;运行时错误';429';:ActiveX组件可以';t创建对象";?

Dll “我如何解决?”;运行时错误';429';:ActiveX组件可以';t创建对象";?,dll,vb6,windows-7,activex,ocx,Dll,Vb6,Windows 7,Activex,Ocx,我的公司有一个使用Crystal Reports 7的VB6应用程序,客户要求将其安装在32位Windows 7上。它当前安装在客户端的Windows XP 32位SP2计算机上。通过ODBC连接到另一台服务器上的SQL Server 2000实例,即可连接到数据库 在Windows 7上,安装工作正常,但是当您尝试打开应用程序时,会出现错误 我看了以下几点: 使用regsvr32注册所有dll和ocx文件。有些人将不会注册,因为他们可能已经注册,或者会收到以下消息“确保“[name].dll

我的公司有一个使用Crystal Reports 7的VB6应用程序,客户要求将其安装在32位Windows 7上。它当前安装在客户端的Windows XP 32位SP2计算机上。通过ODBC连接到另一台服务器上的SQL Server 2000实例,即可连接到数据库

在Windows 7上,安装工作正常,但是当您尝试打开应用程序时,会出现错误

我看了以下几点:

  • 使用regsvr32注册所有dll和ocx文件。有些人将不会注册,因为他们可能已经注册,或者会收到以下消息“确保“[name].dll”是有效的dll或OCX文件,然后重试”。我阅读了此论坛帖子,其中涉及:http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
  • 使用ProcessMonitor应用程序监视应用程序的打开,以尝试发现是否缺少dll或ocx文件-情况似乎并非如此
  • 根据审查申请,似乎没有任何内容违反这些指南
我注意到知识库中有两项与此相关

  • http://support.microsoft.com/kb/281848 -与应用程序捆绑在一起的comdlg32.ocx版本为6.0.81.69,而dev机器(WinXP 32位)上system32文件夹中的版本为6.1.97.82。然而,如果这是一个问题,那么它肯定不会工作,目前
  • http://support.microsoft.com/kb/184898 -我不知道如何确认这就是问题所在
最后,由于复杂性,我不允许对此应用程序进行代码更改。即使我是,我也不是一个VB6程序员,只是一个得到了支持项目的家伙!如果需要更改代码,那么我必须使用WinXP模式进行调查


更新:我在XP模式下遇到同样的错误。这是一个胜利的XP与SP3虚拟机。这在WinXP SP2虚拟机上运行,SP3中是否有可能导致这种情况发生?或者这只是XP模式的一个事实?

您说一旦安装了VB6 IDE,它就会工作,所以问题很可能是您尝试使用的组件取决于安装的VB6运行时

默认情况下,Windows上未安装VB6运行时

安装IDE是获取运行时的一种方法。对于非开发人员计算机,应使用Microsoft提供的“可再发行”安装程序包

下面是一个来自Microsoft的VB6运行时安装程序。我不确定它是否适合您的组件:


安装中缺少文件msrdo20.dll

根据此文件,应随应用程序一起分发

我不确定为什么不是,但我的解决方案是将文件放在机器上的某个位置,并在命令行中使用regsvr32进行注册,例如:

regsvr32 c:\windows\system32\msrdo20.dll

在理想情况下,您可以将其打包为可再发行版本。

此下载修复了我的VB6 EXE和Access 2016(使用ACEDAO.DLL)运行时错误429。我花了两天时间才解决,因为429的原因太多了

引自链接:
“此下载将安装一组组件,可用于促进2010 Microsoft Office系统文件和非Microsoft Office应用程序之间的数据传输”

我遇到了相同的错误,但我通过在C:\Windows\SysWOW64中使用regsvr32.exe解决了此问题。
因为我们使用x64系统。因此,如果您的计算机也是x64,则ocx/dll也必须注册为regsvr32 x64版本

是否安装了Microsoft脚本引擎?这不是针对VBScript的吗?如果不是,请原谅我的无知。请检查VB6 IDE中的项目引用,并确保已在那里注册所有已检查的DLL/OCX。注册DLL/OCX时没有任何运气。我已经检查过了,我确信它们都已注册,但显然没有,好像我安装了VB6 IDE,那么程序就可以运行了。然而,对于这个客户机来说,这并不是一个真正的解决方案。不幸的是,我现在没有时间了,所以我不得不使用XP模式的解决方案。我今天早些时候偶然下载了该文件,不幸的是,在XP SP3上安装后,应用程序仍然没有运行,我没有看到另一个更适合XP的可再发行版本。从那时起,我刚刚发现SP3机器上缺少SP2机器上的三个DLL(将这些DLL添加到SP3机器并注册后,应用程序可以运行!)。它们是msrdo20.dll、msbind.dll和msstdfmt.dll。我现在正试图找到它们的来源,以及它们是否在其他可再发行的地方可用。将其缩小到msrdo20.dll,作为问题的原因。