如果无法重新编译,请使VB6应用程序在Windows 7中工作

时间:2009-12-11 20:30:23

标签: vb6 windows-7 registry uac

我有一个VB6应用程序仍然引用一些旧的VB5库(dll,vbr,tlb和ocx)。我们遇到了一些奇怪的问题,比如无法使用advapi32.dll读取注册表。我尝试使用UAC权限运行应用程序,但仍然没有去。我们无法重新编译应用程序,因为它有几个无法下载的控件和组件,不再受支持。任何想法(除了我们已经在处理的重写之外)都表示赞赏。

要添加,我们已经在Windows XP模式下尝试过此应用程序。但是,这是我的“抱怨”:

  • 作为vbFormCenter和vbModal加载的Windows在双监视器之间居中。即使将其拖动到其中一个监视器后,它也不记得模态应该在哪里。
  • 当试图打印时,随机吐出最多需要5分钟。这是因为(或者至少我认为这是原因)XP Mode机器也从主机加载打印机。
  • 某些DCOM通信似乎随机缓慢
  • 通过USB连接的打印机只能在主机或VM上,而不能同时使用两者,因为它使用了通过。即便如此,您也无法“强制”使应用程序允许连接打印机。
  • 调用Application.Exit时,旧应用程序(VB5和VB6)并不总是关闭。不知道为什么会这样,但是你可以打开一个表格,并在点击一个按钮时调用Exit子,超过25次,10-20%的时间不关闭。因此,无法将应用程序显示为主机上的子进程,因此可以将其杀死。

呼。那只是几个。

4 个答案:

答案 0 :(得分:2)

Windows 7不支持VB 5.0,虽然VB 6.0是,所以我猜这是你的问题。

解决这个问题的方法是运行一个windows xp虚拟机,而Windows 7使用xp模式执行此操作非常简单。

退房,

http://www.microsoft.com/windows/virtual-pc/download.aspx

答案 1 :(得分:0)

这可能是一个愚蠢的问题,但您是否尝试在兼容模式下运行它?

答案 2 :(得分:0)

您可以尝试使用Windows XP虚拟机...假设它不需要直接在主机上运行。

答案 3 :(得分:0)

具有一些优势的XP虚拟机的替代方案是Parallels。它价格便宜,功能强大,并提供整洁的透明模式,以便在VM中运行的程序看起来像在桌面上一样运行。我一直在我的Windows 7计算机上使用Parallels,因为它出现了几个用于传统客户端软件开发的XP桌面,而且它很有用。