需要 Windows 7 64 位的 C 编译器,以编译到 DOS 目标

Need C compiler for Windows 7 64-bit, to compile to DOS target

我正在尝试找到一种解决方案,使我能够将 C 代码从 Windows 7 64 位编译为 DOS 可执行文件。我最近从 XP 32 位更新到 Win7 64 位,现在我的 Borland C++ 5.0 编译器无法工作。当它尝试调用 tlink.exe 16 位时出现错误。我试图避免将另一台装有 XP 的计算机带过来,但如果我不能很快找到其他解决方案,那将是我的行动方针。

我的目标是运行 FreeDOS 的嵌入式 x86。尽管我很想过渡到 Linux,但我负担不起过渡所需的时间。除了从未使用过 Linux 的学习曲线外,我的大部分代码都依赖于 DOS,因此必须重写。

我希望我可以更改 windows 设置,但到目前为止,我的研究让我相信我需要对我的流程进行更彻底的更改。我已经在 Turbo C 2.01、DJGPP、DOSbox 上四处嗅探了……如果没有一些外部输入,我真的不太自信去走那些小巷

如果您能找到旧的 Microsoft 编译器,例如 16 位 C / C++ 1.52(包含在 32 位 C / C++ 4.1 cd-rom 中)或 C 8.00 或更早版本,它 运行 s 使用 dos 扩展器或 32 位 dos 控制台 window。

为什么你不能 运行 Borland 编译器使用 FreeDOS?

您可以尝试创建一个装有 MSDOS 的虚拟机,但您必须想办法在虚拟机上安装 MSDOS 6.22。在 Microsoft 的支持站点上,他们提供了指向 MSDOS 6.22 的可引导 ISO 文件的链接。我仍然有原始的软盘,并从带有软盘驱动器的旧系统上的软盘开始。向/从虚拟机导入/导出文件有点尴尬。

这是我使用的 config.sys,它似乎适用于 Win 7 虚拟机。我不得不增加缓冲区、堆栈和文件以避免此设置出现堆栈溢出问题。

dos=high,umb
buffers=40,0
files=60
lastdrive=e
shell=c:\command.com c:\ /e:1024 /p
stacks=64,512
switches=/f
device=c:\dos\himem.sys /numhandles:64 /testmem:off
device:c:\dos\emm683.exe ram i=b100-b7ff i=c600-c7ff i=cc00-cfff i=e600-efff frame=d000 a=32 d=128 notr
devicehigh=c:vmadd\cdrom.sys /d:mscd001

这是我使用的 autoexec.bat(smartdrv 在这种情况下有点毫无意义,所以我用 "rem" 前缀将其注释掉)。

c:\dos\emm386 auto
lh c:\dos\mscdex.exe /d:mscd001 /m:7
rem lh c:\dos\smartdrv.exe
lh c:\vmadd\mouse.com
set path=c:\dos
set blaster=a220 i5 d1 h5 p330 t6
prompt $p$g

运行 Virtual XP or VirtualBox 并在里面安装Borland C++。顺便说一句,5.02 版有一些修复(以防你的版本恰好是 5.0)。

至于编译器,Open Watcom 在我看来是您所处情况的最佳选择。 FrameworkPascal(用旧版本的 Watcom 编写)提供了一个 32 位扩展器。关于 FreeDOS 虚拟机的创建,从 Microsoft SysInteral 中获取工具。它们包括一个创建 VHD 的工具。一旦你在 VM 中获得 FreeDOS 运行ning,你就可以简单地 SYS VHD 并在任何地方启动它。有很多准备 运行 FreeDOS 的 ISO 映像,值得一提的是用于 DOS 的 Seagate Seatools,它与 FreeDOS 内核一起分发。

针对 运行 的最佳(但不仅是)解决方案可能是 Windows 7 Pro 上的 XPMode。它 运行s Windows XP 32 当然通过其 NTVDM 与 DOS 16 位实模式、16 位保护 (Windows 3.1) 和 DOS 32 位扩展程序提供 100% 的透明兼容性。 顺便说一下,NTVDM 是一项可以在 Windows 10 Pro 上激活的功能,但它到底能做什么还有待观察。

XPMode 是 Microsoft 的免费下载,可在 Windows 7 Pro 上的虚拟机中安装免费版本的 Windows XP 32 位,完全共享 cutpaste/copy 缓冲区, USB、驱动器、屏幕和网卡(网络访问)。它可以在 Window 和全屏之间切换。 XPMode 的安装是自动的(在激活 Windows 7 Pro VM 之后)。 Microsoft 提供了各种可下载的修补程序来更新注册表以激活 VM。有一个 MS 支持可下载的修补程序必须 运行 允许安装在 AMD Bulldozer 架构上。 XPMode 休眠其桌面和虚拟硬盘驱动器,使其成为比基于硬件的系统更高效的环境。

稍加工作Windows XP 32 位可以安装在任何虚拟机上,包括Windows XP 64 位上的Microsoft Virtual Machine 以及Oracle Box 和VMWare。然而,XPMode 可能是最流畅的解决方案,因为某些安装(例如 Windows XP 64 位的 MS 虚拟机)没有在全屏中使用完整的物理显示(只有大约 90%)。如果你在 XPMode 中安装你的浏览器和电子邮件,你可以全屏生活而忘记 Windows.

的新版本