我有一个 VB6 应用程序,它仍然引用一些旧的 VB5 库(dll、vbr、tlb 和 ocx)。我们遇到了一些奇怪的问题,比如它无法使用 advapi32.dll 读取注册表。我试过使用 UAC 权限运行该应用程序,但仍然不行。我们无法重新编译该应用程序,因为它有几个控件和组件无法下载并且不再受支持。任何想法(除了重写,因为我们已经在努力)表示赞赏。
补充一下,我们已经在 Windows XP Mode 中试用过此应用程序。但是,这是我这样做的“提示”:
- 作为 vbFormCenter 和 vbModal 加载的窗口在双显示器之间居中。即使将它拖到其中一台显示器后,它也不记得模式应该在哪里。
- 尝试随机打印时,最多需要 5 分钟才能吐出一份作业。这是因为(或者至少我认为这是原因)XP 模式机器也从主机加载打印机。
- 某些 DCOM 通信随机出现缓慢
- 通过 USB 连接的打印机只能在主机或 VM 上,不能同时在两者上,因为它使用直通。即便如此,您也不能“强制”应用程序允许连接打印机。
- 较旧的应用程序(VB5 和 VB6)并不总是在调用 Application.Exit 时关闭。不知道为什么会这样,但是您可以打开一个表单并在单击按钮时调用 Exit sub,在 25 次中,有 10-20% 的时间它不会关闭。因此,无法将应用程序显示为主机上的子进程,因此无法将其杀死。
呸。这只是几个。
最佳答案
Windows 7 不支持 VB 5.0,但支持 VB 6.0,所以我猜这是你的问题。
这个问题的解决方案是运行一个 windows xp 虚拟机,而 windows 7 有一个使用 xp 模式执行此操作的非常轻松的过程。
检查,
关于vb6 - 在无法重新编译的情况下让 VB6 应用程序在 Windows 7 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1890695/