【问题标题】:VB6 Running on Windows 8?VB6 在 Windows 8 上运行?
【发布时间】:2024-01-11 22:37:02
【问题描述】:

假设 vb6 不能在 Windows 8 上运行,因为 VB6 运行时库未随 Windows 8 一起提供,是否无法在 Windows 8 上安装 VB6 运行时库然后运行 ​​VB6?还是有其他问题?

【问题讨论】:

  • 一旦 Windows 8 出来,这可能是一个很好的问题......
  • 不要采取错误的方式,但如果您担心与尚无确切出货日期的操作系统的兼容性,那么您可能不应该使用像 VB6 这样过时的技术。我的意思是真诚的。
  • 当 VB6 首次发布时,它的库并未随 Windows 一起提供,您必须将它们与您的应用程序一起安装。可以肯定的是,未来的 Windows 版本将以同样的方式与 VB6 一起工作。
  • 对于基于 ARM 和 Intel 的系统,答案可能不一样......
  • @BeemerGuy - 批评使用 VB6 是不公平的。他可能正在尝试确定是否需要开始考虑在 .NET 中重写一个 VB6 应用程序以期待 Windows 8。那里有很多 VB6 应用程序,其中一些应用程序足够广泛,以至于完全重写它们是非常令人望而却步的.

标签: windows vb6 compatibility windows-8


【解决方案1】:

这是一个很难真正回答的问题,但我会尽力提供最好的回答。

我们真的不能确定,因为它尚未发布,并且可能仅处于开发的早期阶段。也无法预测可能会出现什么样的黑客攻击以允许 VB6 应用程序在 Windows 8 上运行。我相当有信心,社区提出某种解决方法只是时间问题,如果你真的那么担心。如果纯粹出于好奇,我什至可能会自己研究一下。

不过,official word 是这种配置可能不被支持:

...没有计划在 Windows 7 以后的未来版本的 Windows 中包含 VB6 运行时。

关于 Windows 8 仅发布 64 位版本(与 Server 2008 R2 一样)的讨论也值得考虑。由于 VB6 运行时(以及由 VB6 编译器创建的所有应用程序)都是 32 位的,因此它们必须在模拟的 32 位层 (WOW) 中运行。一些应用程序在 64 位版本的 Windows 7 中运行时已经遇到问题,而且这个问题可能只会变得更糟。 IDE 目前在 64 位版本的 Windows 上为 not supported,这使得遗留应用程序的持续维护变得更加困难(尽管它的价值,我只是将它安装在运行 Server 2008 R2 的开发盒上,没有任何问题)。

【讨论】:

  • 一个很好的答案。但我认为微软的声明措辞非常谨慎。政客们经常说他们“没有计划做某事”:有时这意味着他们知道这会发生,但他们不想谈论它。 Microsoft 可能在 Windows 8 中支持 VB6,也可能不支持。他们有既得利益,鼓励人们小心翼翼地迁移。他们还有很多大客户,拥有数百万行的 VB6,而且没有像样的迁移路线。他们只是在发布前几个月宣布 VB6 运行时将在 Windows 7 中。
  • 我觉得include是关键词,VB6运行时还是可以手动安装的。
  • 这句话也用于 Windows Vista。
  • 微软现在宣布了 VB6 runtime is supported on Windows 8。没有不尊重,但是... 我告诉过你 :) 现在我们等待“没有计划在 Windows 9 中支持它”的声明
  • 是的,确实如此。我很久以前就注意到了这一点。考虑到它设法带来的所有剩余赞成票,我应该有动力更新这个答案以确保准确性,但我真的没有。
【解决方案2】:

通过确保向后兼容性,Microsoft 可以得到一切,也不会失去任何东西。 Visual Studio 将 Interop 宣传为将 Vb6 技术与 .net 集成的一种方式;如果微软取消了这种兼容性,似乎微软会自取其辱,因为我认为 Interop 工作需要 vb6 运行时。

【讨论】:

  • 我不会说他们没有什么可失去的。向后兼容性测试、功能文档等,在开发周期中都需要花钱。
  • 真的,除了一点善意之外,他们支持一项古老的开发技术还能获得什么?
【解决方案3】:

我听说您可以将 msvbvm60.dll 放在与您的 Visual Basic 6 exe 相同的文件夹中并且它可以工作。我没有亲自验证这一点,当然,在 Windows 8 中也没有。

我有一个带有 20K 行 VB6 代码的实用程序,它只需要拖放部署而无需安装包。所以我对 Windows 8 中的这个问题也很感兴趣。

【讨论】:

    【解决方案4】:

    我认为所有 ActiveX 库仍将按照它们在 Windows 7 下的实际运行方式运行。请记住,Microsoft 说过 Windows 8 将具有“经典 Windows 模式”(带有桌面、菜单栏等,如 Windows 7)。

    另一个问题是关于 ARM 系统的,我认为会有两种情况:x86 程序根本无法运行,或者微软将包含一个仿真层以供使用 Intel 程序(以性能为代价)。

    因此,Windows 8 可能不会是 VB6 和所有相关软件的最后期限,但问题肯定会增加,直到我们无法以任何方式使用。因此,请准备好使用 XP Mode (Virtual PC)、VirtualBox、VMWare 等软件进行虚拟化和运行 VB6。

    【讨论】:

      【解决方案5】:

      编辑: Microsoft is going to support Windows 8 中的 VB6 运行时。

      截至 2011 年 9 月 13 日,VB6 应用仍可在 Windows 8 的 Developer Preview 中运行).。它们还在 Consumer Preview 中运行,如上所述,Microsoft 致力于让 VB6 在 Windows 8 中运行。

      【讨论】:

      • 这是我在安装 Developer Preview 时首先检查的内容之一。我真的很惊讶,特别是考虑到当前 support statement 中相当强大的语言,特别是“没有计划在 Windows 7 以后的未来版本中包含 VB6 运行时”这句话。我希望微软能在不久的将来澄清这一点,希望在 RTM 发布之前,以便那些试图找出确切路径的公司可以在新机器开始与 Windows 8 一起发布之前弄清楚。
      • @MikeSpross 政客们经常说他们“没有计划做某事”:有时这意味着他们知道这会发生,但他们不想谈论它。微软在 Windows 7 之前说过类似的话。微软也有既得利益,通过发表可怕的言论来鼓励人们迁移。他们还有很多大客户,拥有数百万行的 VB6,而且没有像样的迁移路线。
      • @Mike Microsoft 现已宣布 VB6 runtime is supported on Windows 8。我已将其编辑为 Kris 的答案,希望 Kris 没问题。没有不尊重,但是... 我告诉过你 :) 现在我们等待“没有计划在 Windows 9 中支持 VB6”的声明
      • @MarkJ 呵呵。老实说,一旦它出现在开发者预览版中,我无法想象他们稍后会在 RTM 中推出它。但是,好消息,我同意 VB6 可能不会很快消失。
      【解决方案6】:

      据我所知,它们在 Windows 8 中的工作方式与在 Windows 7 中的工作方式相同 - 他们说 Windows 7 中的所有内容都可以在 Windows 8 中工作(假设硬件相同)。那里仍然有大量的 VB6 应用程序,因此它们无缘无故放弃支持是没有意义的。你可以从Windows 8 forums 找一些人来检查一下,因为他们可以访问开发者预览版以外的版本,并且可能会为你获得一些反馈。

      这里还有一个帖子可以帮到你:Google Groups Post

      【讨论】:

        【解决方案7】:

        我已经能够在 32 位 Windows 8 Preview 版本上安装 VB6 IDE 并编译一些现有的应用程序。我在 64 位版本上还没有安装成功。

        【讨论】:

          【解决方案8】:

          Microsoft 于 2012 年 1 月更新了他们的支持声明。看来 VB6 将在 Windows 8 中得到支持。

          VB6 运行时将在 Windows 8 中发布并在操作系统的整个生命周期内得到支持。 Visual Basic 6.0 运行时文件仍然只有 32 位,所有组件都必须托管在 32 位应用程序进程中。开发人员可以认为 Windows 8 的支持故事与 Windows 7 的支持故事相同。

          http://msdn.microsoft.com/en-us/vstudio/ms788708

          【讨论】:

            【解决方案9】:

            微软上个月宣布将扩展“It Just Works” Visual Basic 6 应用程序在整个生命周期内的兼容性 Windows Vista、Windows Server 2008、Windows 7 和(最重要的是) Windows 8。如 Visual Basic 6.0 资源中心所述,“the 整个生命周期都将支持核心 Visual Basic 6.0 运行时” 这些操作系统。该承诺包括五年 主流支持,然后是五年的扩展支持。

            Karl Peterson 是一名 VB6 程序员,曾在 Visual Studio Magazine 和 Visual Basic Programming Journal(他在 撰写了流行的 VB Corner 专栏等,直到 2010 年)。 彼得森指出,该公告正式将 VB6 运行时间超过了他预计的退休时间。而这个事实可能 对大量使用 VB6 的企业的影响 代码,彼得森称之为“2020 年代的 COBOL”。

            “经典 VB 社区中的许多人都是从 Windows 之前的 天,现在即将退休,” 他说。 “许多人失去了这种制度知识 企业只会进一步巩固功能代码库。”

            Peterson 说微软的决定反映了 VB6 的采用 超越了“业余爱好者或共享软件类型的作者” 企业中的游击队员。”他说微软很可能被转移到 扩展支持,因为企业仍然维护真实的 VB6 代码 价值,并且无法立即迁移。

            来源:MSDN Magazine

            http://support.microsoft.com/gp/lifepolicy

            【讨论】:

              【解决方案10】:

              据我所见,VB6 运行时似乎确实可以工作......但我在 Windows 8 RTM 64 位上安装 IDE 的尝试是一个巨大的失败。我遇到了很多非常严重的错误(似乎一个数字与 OLE 注册有关),安装程序甚至没有正确完成。我会坚持使用我的 XP VM 进行 VB6 开发。

              对于 Windows 8 中的工作,我也会谨慎处理。仅仅能够加载和显示普通的表单与运行到 SQL Server 的 ADO 连接有很大不同,加载和播放媒体,或进行任何类型的严重套接字通信。一如既往,彻底测试! :)

              编辑:看起来微软的支持声明(链接到另一条评论)证实 Windows 8 不支持 IDE。

              【讨论】:

                【解决方案11】:

                它确实适用于 Windows 8 和 8.1,甚至适用于 Windows 10

                【讨论】:

                  【解决方案12】:

                  Visual Basic 6 适用于 Windows 8、8.1 和 Windows 10。

                  【讨论】:

                    【解决方案13】:

                    我有一段时间在 Windows 7 和 Windows 10 上运行了一个大型 VB6 应用程序。进行了一些调整以使其正常工作,但完全没有问题。

                    【讨论】:

                    • 这个问题已有十年之久,在 Windows 8 正式发布之前被问到。正如上面的答案所示,微软随后宣布支持此配置。您的答案确认了现有答案已经确定的内容,但没有添加任何新内容。如果您可以编辑您的答案以包括例如您需要执行的调整以确保其有效,那可能会很有用。但除此之外,只需对现有答案之一进行投票以确认兼容性,而不是将已经说过的内容作为新答案重复。
                    • 此外,问题不在于 Windows 7 或 Windows 10,而是特定于 Windows 8。(不过,可以想象,两者的支持表明中间版本的支持。)