如何解决“运行时错误”429':ActiveX组件无法创建对象“?

问题描述:

我的公司有一个使用Crystal Reports 7的VB6应用程序,客户端要求在Windows 7 32位上安装它。它目前安装在客户端的Windows XP 32位SP2机器上。连接到数据库是通过ODBC到另一台服务器上的SQL Server 2000实例完成的。如何解决“运行时错误”429':ActiveX组件无法创建对象“?

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

我已经看过了以下内容:

  • 注册所有DLL的使用REGSVR32 OCX文件。有些不会注册,因为它们要么已经注册,要么给出以下消息:“确保”[name] .dll“是有效的DLL或OCX文件,然后重试。”我阅读这个论坛主题关于此:http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
  • 监测使用应用程序的打开ProcessMonitor应用程序试图发现是否存在缺失的dll或ocx文件 - 这似乎并非如此。
  • 根据this list并没有什么评价的应用似乎是对这些准则

我已经在知识库中发现的两个项目,涉及到这个

  • http://support.microsoft .com/kb/281848 - 与该应用程序捆绑在一起的comdlg32.ocx版本为6.0.81.69,开发机器上的system32文件夹(WinXP 32位)为6.1.97.82。但是,如果这是问题,那么肯定它目前无法工作?
  • http://support.microsoft.com/kb/184898 - 我不知道如何确认这是问题

最后,由于复杂性,我不允许修改代码到这个应用程序。即使我是,我也不是VB6程序员,只是那个得到了非常支持项目的人!如果需要更改代码,那么我将不得不使用WinXP模式进行调查。

更新:我在XP模式下得到相同的错误。这是带有SP3虚拟机的Win XP。这在Win XP SP2虚拟机上运行,​​SP3中是否存在可能会导致此问题发生的一些内容?或者它仅仅是XP Mode的一个事实?

+0

您是否安装了Microsoft Scripting Engine? – kyndigs 2010-11-18 10:16:38

+0

是不是适用于VBScript?如果不是,请原谅我的无知。 – RLT 2010-11-18 10:39:37

+0

检查VB6 IDE中的项目引用,并确保在那里注册了所有这些DLL/OCX。 – MicSim 2010-11-18 17:08:12

文件MSRDO20.DLL从安装失踪。

根据the Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7该文件应与应用程序一起发布。

我不知道为什么没有,但我的解决办法是什么地方放置文件在机器上,并在命令行中使用REGSVR32注册,如:

regsvr32 c:\windows\system32\msrdo20.dll 

在理想世界,你会把它与可再发行组件打包在一起。

你说它一旦安装VB6 IDE就可以工作,所以问题很可能是你试图使用的组件取决于正在安装的VB6运行时。

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

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

这是一个来自Microsoft的VB6运行时安装程序。我不知道这是否是为组件的正确版本:

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7b9ba261-7a9c-43e7-9117-f673077ffb3c

+0

我偶然在今天早些时候下载了该文件,不幸的是,在XP SP3上安装后,应用程序仍然没有运行,我没有看到更适合XP的另一个可再发行版。 – RLT 2010-11-22 14:14:37

+0

从那时起,我刚刚发现SP2计算机上存在的SP3机器上缺少三个DLL(并将这些DLL添加到SP3机器并注册它们允许应用程序运行!)。他们是msrdo20.dll,msbind.dll和msstdfmt.dll。我试图找出他们来自哪里,如果他们可以在另一个可再分配的地方。 – RLT 2010-11-22 14:16:47

+1

将其缩小到msrdo20.dll导致问题。 – RLT 2010-11-22 14:52:57

此下载我的固定VB6 EXE和Access 2016(使用ACEDAO.DLL)运行时错误429.我花了2天久,寻求解决办法,因为有429的

http://www.microsoft.com/en-ca/download/details.aspx?id=13255

这么多的原因从链接

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

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