我想知道是否有人尝试过以下方法在 Win64 下运行 16 位应用程序?
我可以安装 VMware 虚拟机,加载 Linux,并使用 Wine 来模拟旧的 Windows 环境。我不明白为什么惯于可以工作,但是我从以前的问题中找不到有关 Win64 上的 16 位 Windows 的信息。
答案1
64 位 Windows 不包含 WOW - 但根据维基百科,64 位 Wine 包含!
来源:http://en.wikipedia.org/wiki/Wine_(software)#Backward_compatibility
http://en.wikipedia.org/wiki/File:Wineon64bit.png
Wine 的向后兼容性优于 Windows,因为较新版本的 Windows 可能会强制用户升级旧版 Windows 应用程序。在许多情况下,Wine 可以通过“兼容模式”提供比较新版本的 Windows 更好的旧版支持。如左侧屏幕截图所示,Wine 可以在使用 x86-64(64 位)CPU 的 64 位操作系统上运行 16 位 Windows 程序。64 位版本的 Microsoft Windows 无法运行 16 位 Windows 程序
来源:http://en.wikipedia.org/wiki/Windows_on_Windows
Win16 子系统适用于 32 位版本的 Windows NT、2000、XP、Server 2003、Vista、Server 2008、7 和 8。但是,64 位版本的 Windows 不包含 WoW Win16 支持子系统,因此无法运行 Win16 应用程序,也不提供 NTVDM 仿真器。因此,如果没有第三方仿真软件(例如 DOSBox)或带有 32 位版本的 Windows、Windows XP Mode 或 DOS 本身的虚拟机,DOS 和 16 位 Windows 应用程序就无法在 64 位版本的 Windows 中运行。
如果可以的话,请运行两个虚拟机 - 一个搭载 32 位 Windows,一个搭载 64 位 Windows,假设您特别需要 64 位 Windows。
答案2
现在可以使用 winevdm 来实现这一点:https://github.com/otya128/winevdm要在 64 位 Windows 上运行 16 位应用程序,必须模拟 x86 CPU,因为在 Windows x64 上无法更改本地描述符表 (LDT)(这是运行 16 位代码所必需的)。GitHub 上的链接项目包含对 Wine 和 x86 模拟器的所有必要更改。我已经测试过了,它似乎运行得很好。
要安装最新版本,请访问https://ci.appveyor.com/project/otya128/winevdm,选择“环境:THIS_BUILD_IS_RECOMMENDED__VCXPROJ_BUILD=1”,然后选择“Artifacts”。解压 zip 存档并运行“install”以添加注册表项,以便使用 otvdm 打开 16 位可执行文件。
答案3
我可以确认这适用于 Ubuntu Bionic。我正在使用 Zorin 15:
葡萄酒技巧:
- 选择默认的wineprefix,更改设置,winxp
- 扩展ftp://ftp.lotus.com/pub/lotusweb/product/smartsuite/Kvlotus.exe到我的(wine)下载文件夹。
- 运行安装程序。(SETUP.EXE)“使用安装 Windows 应用程序打开”
现在我可以从我的 Destop 运行 Kvlotus(16 位)。