我的公司有一个使用 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,开发机器(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 模式的事实?