VB6 VisualBasic6 API 在 Windows 8 上工作吗?



是否只有基本的VB6应用程序在WIN8上运行?任何API在使用中是否不同,如GDI+、Keyhooks、FileSystem或RtlMoveMemoryApis。

VB6是x86,Win8是x64。

我已经读过:VB6在Windows8上运行?

Windows 8不会更改Windows桌面应用程序的基本API。(当然,Windows RT除外)

未来版本的Windows也不会;对这些API的任何更改都将破坏与所有现有应用程序的兼容性。

我们刚刚开始在Windows 8 x64上测试我们的VB6应用程序。这个应用程序庞大而复杂。通常情况下,即使是较旧的第三方OCX控件等,ADO/MDAC也能很好地与各种版本的SQL Server配合使用。有许多Win32 API调用似乎也运行良好。我们还能够在Windows 8 x64上安装VB6 IDE进行测试和调试。

然而,第一个问题是一个常见的50003错误和一条消息,说它无法创建主应用程序窗体或类似的东西。进一步的调查显示,出于某种原因,Windows 8不喜欢嵌入表单中的一些图标(它们存储在表单附带的.frx文件中,并在编译时嵌入到.exe中)。看起来它可能与具有透明背景的图标有关。

该应用程序有大约100个受影响的表单。一旦这个问题得到解决,应用程序似乎可以正常工作。但有一件事破坏了我们在Windows7(以及Vista和XP以及所有服务器版本,以及在2000、Win98和Win95上运行的旧版本)上运行良好的分发可执行文件。它可以很容易地修复,但我们希望不必做任何事情。叹气

如果其他人看到过这篇文章,或者有什么建议或建议,我会很感兴趣。

第页。S.@Hans Passant,Windows 7 SP1 ADO问题已通过KB2640696修复。

保持旧的VB6程序运行肯定越来越困难。Windows 7 SP1部署了一个过期已久的ADO更新,该更新将阻止旧的VB6数据库应用程序工作。MSCOMCTL有两个关键的安全修补程序。OCX今年,其中一个改变了指导方针。

虽然你只需跳过这些更新就可以让旧机器运行旧的VB6应用程序,但Windows 8会将它们安装到位,你无法恢复。你必须在有这些更新的机器上重新构建你的应用程序,以便它使用新的类型库。如果这不是一种选择,那么虚拟机就是让它继续运行的方法。然而,我还没有看到对虚拟XP模式的支持。

最新更新