Windows 10 上 VB6 应用程序的兼容性问题

Windows 10 上 VB6 应用程序的兼容性问题

大问题

在我工作的组织中,管理系统(另一家公司创建的模块化应用程序)是在 97/98 年使用 VB 开发的,从未迁移到其他更先进的开发平台,例如 VB.NET。此应用程序(32 位)在 Windows 7(32 位和 64 位)上均可正常运行。

现在,出于显而易见的安全原因,我们必须在 Windows 10 上安装此系统,但存在以下几个问题:

  1. 不兼容 Windows 7,主应用程序通过其他按钮启动子应用程序,就好像它们是模块一样。有时这些子应用程序中的几个会抛出运行时错误‘53’:未找到文件而不指定缺少哪个 dll。其他子应用程序无法打开。当然,我们已经检查过这些图书馆是否已在 登记regsvr32
  2. 与 Windows 7 兼容,运行时错误‘53’似乎消失了,但程序发出了一个警告(比如,预料到的警告(因为该文档以非英语语言显示)注意到无法将一些必须处理的文件复制到特殊文件夹UserProfile添加细节“运行时错误‘52’:文件名或编号错误”

我尝试过什么?

  • 我尝试在 32 位和 64 位 Windows 10 上运行该应用程序。在两个版本中,程序都失败了,而且在 32 位版本中运行效果似乎更差。

  • 我也尝试反汇编代码,最终发现错误来自于解决与特殊文件夹(至少ProgramFilesUserProfile)相关的某些路由。

  • 我自己研究了一下,我怀疑这可能是由于一些外壳和架构问题,如此线程所示,因为应用程序使用 shell 来解析特殊文件夹。但是,它正确解析了这些文件夹的路径。

  • 我高度怀疑这与在更高模式下运行应用程序有关,我尝试在管理员模式下运行并获取特殊文件夹的权限。但我认为我缺少一些配置。

  • 我正在认真考虑在 Windows 10 中虚拟化 Windows 7,直到程序更新为止,正如这里建议的那样,但我想用它作为最后通牒。

说实话,我陷入困境。有任何想法吗?

PD:请避免回答风格明显的问题“你的组织应该购买更好的软件”;我在 IT 部门,我们还没有设法解除这个丑陋的管理软件的数据库绑定;更不用说说服上级进行这一改变需要花费我们多少钱。

答案1

根据我的经验,Windows 10 中并不存在任何特定的问题,这些问题本质上与 Windows 7 不同。显然,应用程序可能会有所不同,因此这可能并不普遍适用;但我会首先寻找安装或配置类型的问题,而不是彻底的兼容性。

52/53 错误可能是权限问题?驱动器映射问题?我建议针对以下问题运行应用程序:进程监控看看你是否可以用该工具检测出缺少什么/没有找到什么。

答案2

-以管理员身份运行。

-将其安装在您创建的文件夹中。

- 拥有其所有子文件夹的所有权。

许多 VB6 应用程序甚至没有权限访问 Windows 10 上的自己的文件夹。

尝试 MS 应用程序兼容性工具包

相关内容