我的公司有一个使用Crystal Reports 7的VB6应用程序,客户要求安装在Windows 7 32位上。目前,该应用程序已安装在客户端的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,开发机器(WinXP 32位)上system32文件夹中的版本是6.1.97.82。但是,如果这是问题,那么它目前肯定不会工作?
- http://support.microsoft.com/kb/184898-我不确定如何确认这是否是问题。
最后,由于复杂性,我不允许对此应用程序进行代码更改。即使可以,我也不是VB6程序员,只是负责这个糟糕支持项目的人!如果需要代码更改,那么我将不得不调查使用WinXP模式。
更新:我在XP模式下遇到了同样的错误。这是运行在Win XP SP2虚拟机上的,可能是SP3中的某些因素导致错误发生吗?还是这只是XP模式的问题?