Windows 7 如何让VB3程序在Windows7上运行?

Windows 7 如何让VB3程序在Windows7上运行?,windows-7,vb6,Windows 7,Vb6,很多年前,我使用VB3为客户编写了一个系统——或者可能是VB5或VB6?不记得了。。。那真的是很久以前的事了 不管怎么说,这些年来,他们一直在愉快地使用这个程序,包括从Windows 95到XP的全办公室升级,但现在他们想将办公室电脑升级到Windows 7。明智地说,他们尝试先升级一台电脑,然后重新安装我的程序,但没有成功 有没有什么快速修复方法可以让这个遗留软件在Windows7上运行?或者他们真的需要重写整个程序才能使用它吗?如果您在这里所说的是Visual Basic 3.0,那么它可能

很多年前,我使用VB3为客户编写了一个系统——或者可能是VB5或VB6?不记得了。。。那真的是很久以前的事了

不管怎么说,这些年来,他们一直在愉快地使用这个程序,包括从Windows 95到XP的全办公室升级,但现在他们想将办公室电脑升级到Windows 7。明智地说,他们尝试先升级一台电脑,然后重新安装我的程序,但没有成功


有没有什么快速修复方法可以让这个遗留软件在Windows7上运行?或者他们真的需要重写整个程序才能使用它吗?

如果您在这里所说的是Visual Basic 3.0,那么它可能无法在Windows 7上本机运行。如果要运行应用程序,则需要使用。另一方面,VB6.0应在Windows7上运行,请参见支持声明

如果它是您在此处所述的Visual Basic 3.0,则它可能无法在Windows 7上本机运行。如果要运行应用程序,则需要使用。另一方面,VB6.0应在Windows7上运行,请参见支持声明

在Windows 7、8、8.1和10上运行VB3程序时,问题相对较少。我通常在XP-SP3兼容模式下运行它们。我有很多旧的VB3程序以这种方式运行。 但是VB3程序是16位的,只能在32位版本的windows Vista/7/8/10上运行,因此如果您有64位windows,则除非您使用XP模式(仅在windows 7中可用)或使用VMWare Player或VirtualBox或类似工具设置虚拟windows XP,否则无法运行它们。我在自己的Win-10 64位PC上完成了这项工作,在那里我使用XP、Win-7-32、Win-7-64、Win-8-32、Win-8-64和Win-10-32虚拟机设置了VMWare Workstation,并在需要时运行这些虚拟机

至于将Vb3程序转换为VB4(32位)、VB5或VB6-是的,您可以在新的IDE中打开它们并重新编译,它们应该可以正常工作

除了

如果在Vb3程序中使用了任何第三方VBX或DLL文件,则必须获得这些控件的32位版本,尽管类似控件可能已经作为Microsoft标准控件存在

我经常使用Apex TrueGrid作为绑定到数据控件的网格,用于处理SQL查询和返回结果。我需要升级到TrueDBGrid。但是,我现在发现标准的VB6 Microsoft MSFlexGrid具有我在旧TrueGrid控件中使用的所有功能,因此我现在已将TrueDBGrids替换为MSFlexGrids。属性和方法是不同的,我必须为此重新编码,但大多数都是在用于所有网格的标准子例程中,所以我只需要对所有网格进行一次更改

最大的麻烦是,当您将控件从VB3升级到VB4/5/6时,新控件通常具有相同的属性,但具有不同的名称和参数,或者有时某些功能不存在,您必须找到解决方法。或者,您可能必须使用不同的控件并进行大量代码更改,以支持新控件

我有几个VB3程序,共有超过1000000行代码,只是因为资源和内存不足等原因才运行。我无法添加更多功能,因为如果我这样做,程序将无法编译或运行

我试着将它们从VB3转换成VB6,但出现了很多错误,最后我从头开始重写了很多。多年来,我多次尝试转换它们,但一旦您至少“某种程度上”转换了它们,您就必须尝试运行它们,当您实现这一点时,您就必须尝试编译它们。实际上,我编写了一个VB6程序来读取VB3源代码,并自动进行尽可能多的更改。无法执行此操作的一个区域是*.FRX文件中保存的控件自定义数据,因为这些数据是二进制且未记录的。这是我可以解开的地方。。。 加载程序,运行,获取错误,纠正错误,保存, 运行,获取错误,纠正错误,保存, 运行,获取错误,纠正错误,保存, 运行、获取错误、纠正错误、保存、运行等
您一次只能看到一个错误,并且在转换的代码中有数千个编译器错误。我通常在花了几天的时间试图一个接一个地消除这些错误之后就放弃了。我甚至可能只差一个错误就完成了-但你说不出来-你只知道什么时候真正完成了。

你可以在Windows 7、8、8.1和10上运行VB3程序,但问题相对较少。我通常在XP-SP3兼容模式下运行它们。我有很多旧的VB3程序以这种方式运行。 但是VB3程序是16位的,只能在32位版本的windows Vista/7/8/10上运行,因此如果您有64位windows,则除非您使用XP模式(仅在windows 7中可用)或使用VMWare Player或VirtualBox或类似工具设置虚拟windows XP,否则无法运行它们。我在自己的Win-10 64位PC上完成了这项工作,在那里我使用XP、Win-7-32、Win-7-64、Win-8-32、Win-8-64和Win-10-32虚拟机设置了VMWare Workstation,并在需要时运行这些虚拟机

至于将Vb3程序转换为VB4(32位)、VB5或VB6-是的,您可以在新的IDE中打开它们并重新编译,它们应该可以正常工作

除了

如果在Vb3程序中使用了任何第三方VBX或DLL文件,则必须获得这些控件的32位版本,尽管类似控件可能已经作为Microsoft标准控件存在

我经常使用Apex TrueGrid作为绑定到数据控件的网格,用于处理SQL查询和返回结果。我需要升级到TrueDBGrid。但是,我现在发现标准的VB6 Microsoft MSFlexGrid具有我在旧TrueGrid控件中使用的所有功能,因此我现在已将TrueDBGrids替换为MSFlexGrids。属性和方法是不同的,我不得不为此重新编码,但大部分都是这样