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

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

问题描述

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



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



我查看了以下内容:




  • 注册所有的dll和ocx文件都使用regsvr32。有些不会注册,因为它们已经注册了,或者给出了以下消息:确保[name] .dll是有效的DLL或OCX文件,然后再试一次。我阅读了这个论坛线程:http://social.msdn.microsoft.com/forums/en-US/vblanguage/thread/0653f685-4526-45d9-89f3-8c479a6b4c62

  • 使用ProcessMonitor应用程序监视应用程序的打开,尝试查找是否存在缺少的dll或ocx文件 - 这似乎不是这样。

  • 根据<一个href =http://www.daniweb.com/code/snippet313435.html =noreferrer>这个列表,似乎没有违反这些准则



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




  • 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模式下得到相同的错误。这是一个使用SP3 VM的Win XP。这在一个Win XP SP2 VM上运行,SP3中是否有可能会导致这种情况发生?或者它只是XP模式的一个事实?

解决方案

安装中缺少msrdo20.dll文件。 p>

根据支持声明Windows Vista,Windows Server 2008和Windows 7上的Visual Basic 6.0 应该与应用程序分发。



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

  regsvr32 c:\windows\system32\msrdo20.dll 

在一个理想的世界中,你会用可再分发的方式打包。


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.

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

I have looked at the following:

  • 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 - the comdlg32.ocx bundled with the application is version 6.0.81.69 and the one in the system32 folder on the dev machine (WinXP 32 bit) is 6.1.97.82. However if this was the issue then surely it would not work currently?
  • http://support.microsoft.com/kb/184898 - I'm not sure how to confirm that this is the issue

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.

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?

解决方案

The file msrdo20.dll is missing from the installation.

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.

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:\windows\system32\msrdo20.dll

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

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

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