如何解决“运行时错误 '429':ActiveX 组件无法创建对象"? [英] How do I resolve "Run-time error '429': ActiveX component can't create object"?

查看:64
本文介绍了如何解决“运行时错误 '429':ActiveX 组件无法创建对象"?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

My company has a VB6 application using Crystal Reports 7 which a client has asked to be installed on Windows 7 32 bit. It is currently installed on Windows XP 32bit SP2 machines at the client. Connection to the DB is done via ODBC to SQL Server 2000 instance on another server.

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

On Windows 7, the installation works fine, however when you try to open the application, the error is given.

我看过以下内容:

  • 使用 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 文件 - 情况似乎并非如此.
  • 根据此列表审核了申请,似乎没有任何内容违反这些准则
  • Registering all the dll's and ocx files using regsvr32. Some will not register as they either are registered already or the following message is given "Make sure that "[name].dll" is valid DLL or OCX file and then try again." I read this forum thread regarding this: http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62
  • Monitored the opening of the application using a ProcessMonitor application to try and spot if there is a missing dll or ocx file - this does not seem to be the case.
  • Reviewed the application according to this list and nothing seems to be against these guidelines

我注意到知识库中有两个与此相关的项目

I've noticed two items in the knowledge base that relate to this

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

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

Finally, due to complexities, I am not allowed to make code changes to this application. Even if I was, I'm not a VB6 programmer, just the guy who got the terribly support project! If code changes are required, then I'll have to investigate using WinXP mode.

更新:我在 XP 模式下遇到同样的错误.那是带有 SP3 VM 的 Win XP.这在 Win XP SP2 VM 上运行,SP3 中是否有可能导致这种情况发生的东西?或者它只是 XP 模式的事实?

Update: I get the same error in XP Mode. That's a Win XP with SP3 VM. This runs on a Win XP SP2 VM, is there potentially something in SP3 that would have caused this to occur? Or is it just a fact of it being XP Mode?

推荐答案

安装中缺少文件 msrdo20.dll.

The file msrdo20.dll is missing from the installation.

根据 Windows Vista、Windows Server 2008 上 Visual Basic 6.0 的支持声明和 Windows 7 此文件应与应用程序一起分发.

According to the Support Statement for Visual Basic 6.0 on Windows Vista, Windows Server 2008 and Windows 7 this file should be distributed with the application.

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

I'm not sure why it isn't, but my solution is to place the file somewhere on the machine, and register it using regsvr32 in the command line, eg:

regsvr32 c:windowssystem32msrdo20.dll

在理想情况下,您可以将其与可再发行组件打包在一起.

In an ideal world you would package this up with the redistributable.

这篇关于如何解决“运行时错误 '429':ActiveX 组件无法创建对象"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆