2015-01-07 40 views
5

我想找到一个解决方案,允许我从Windows 7 64位编译C代码到DOS可执行文件。我最近从XP 32位更新到Win7 64位,现在我的Borland C++ 5.0编译器将无法工作。当它试图调用tlink.exe 16位时出现错误。我试图避免用XP带来另一台电脑,但如果我不能很快找出其他的东西,这将是我的行动方针。需要C编译器的Windows 7 64位,编译为DOS目标

我的目标是运行FreeDOS的嵌入式x86。尽管我想过渡到Linux,但我承担不了转换所需的时间。除了从未使用Linux的学习曲线外,我的许多代码都是DOS相关的,必须重新编写。

我希望有一个窗口设置,我可以改变,但我的研究到目前为止,让我相信我需要一个更大的改变我的过程。我在Turbo C 2.01,DJGPP,DOSbox中嗅探过......没有太多的信心,在没有外部输入的情况下去掉任何那些小巷子

+5

如何使用virtualbox在虚拟机中运行xp – pm100

+1

16位代码不会在64位窗口上本机运行(16位子系统不存在)。我已经与DOSBox运气,并且设置和运行起来非常简单。 – Petesh

回答

3

运行虚拟XP或VirtualBox并在其中安装Borland C++。顺便说一句,有5.02版本的一些修复(如果你的版本恰好是5.0)。

2

如果你能找到一个旧的微软编译器,比如16位C/C++ 1.52(包含在32位C/C++ 4.1光盘中)或C 8.00或更早版本,它使用dos扩展器或在32位dos控制台窗口中运行。

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

您可以尝试使用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 

这是我使用(SMARTDRV是在这种情况下,有些毫无意义的,所以我用“REM”前缀的评论出来)的autoexec.bat文件。

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 
1

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

您最好(但不仅限于)在Windows 7 Pro上运行所有可能是XPMode的解决方案。它运行Windows XP 32,它通过NTVDM提供100%的透明兼容性,支持DOS 16位实模式,16位保护(Windows 3.1)和DOS 32位扩展器。 顺便提一下,NTVDM是一个可以在Windows 10 Pro上激活的功能,但它还没有被看到,它可以在那里完成。

XPMode是一款免费的Microsoft下载程序,可在Windows 7 Pro上的虚拟机中安装免费版本的Windows XP 32位,并充分共享cutpaste/copy buffer,USB,驱动器,屏幕和网卡(网络访问)。它可以在窗口和全屏之间切换。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虚拟机)不能在全屏幕(仅约百分之九十)中使用完整的物理显示。如果您使用XPMode安装浏览器和电子邮件,则可以在全屏幕中生活,并忘记Windows的新版本。