相信好多人都知道,在基于 NT 的 32 位 Windows 中,可以通过 NTVDM 运行 DOS 程序,进而还可以通过 WOW 运行 16 位 Windows(Windows 1.x~3.x)程序。

但是在 64 位 Windows 中没有 NTVDM 与 WOW。

于是有人(leecher1337)开发了 NTVDMx64——可以在 64 位 Windows 环境中运行的 NTVDM。

https://github.com/leecher1337/ntvdmx64

不过它可能会对系统有些影响,在该项目的 README 中提到了可能会导致一些 DPMI 程序崩溃。README 中还解释了为什么已经有 DOSBox 了还要移植 NTVDM。

而 otya 的 WineVDM 则更进一步,不仅可以在 64 位的 Windows 中运行 DOS 程序,还可以运行 16 位的 Windows 程序。

https://github.com/otya128/winevdm

下图是使用 WineVDM 在 64 位 Windows 10 中运行 Windows 3.2 的计算器与时钟的截图:

Windows 10 中运行 Windows 3.2 的计算器与时钟

这个 WineVDM 是 Wine 项目中同名程序的增强版(在其 README 中也提到了),还可以运行 DOS 程序。

值得一提的是 WineVDM 本身是 32 位程序,不过能在 64 位 Windows 中正常运行。 既然是 32 位程序,那当然可以在 32 位环境运行了,只是对于 32 位 Microsoft Windows 来说并不需要,因为已经有 NTVDM 与 WOW 可以运行 DOS 程序及 16 位 Windows 程序。 但是在 ReactOS 中就能派上用场了

ReactOS 中运行 16 Windows 程序