簡體   English   中英

需要C編譯器為Windows 7 64位,編譯到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編譯器無法正常工作。 嘗試調用16位tlink.exe時出錯。 我試圖避免使用XP帶來另一台計算機,但如果我不能很快找到其他東西,那將是我的行動方案。

我的目標是運行FreeDOS的嵌入式x86。 盡管我想轉換到Linux,但我無法承受過渡所需的時間。 除了從未使用過Linux的學習曲線之外,我的大部分代碼都依賴於DOS,必須重新編寫。

我希望有一個窗口設置我可以改變,但到目前為止我的研究讓我相信我需要對我的過程進行更大幅度的改變。 我已經在Turbo C 2.01,DJGPP,DOSbox上嗤之以鼻......如果沒有一些外部輸入,我真的沒有信心去任何一條小巷

如果您可以找到舊的Microsoft編譯器,如16位C / C ++ 1.52(包含在32位C / C ++ 4.1 cd-rom中)或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

這是我使用的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或VirtualBox並在里面安裝Borland C ++。 BTW,版本5.02有一些修復(如果您的版本正好是5.0)。

至於編譯器,Open Watcom在我看來是你情況下的最佳選擇。 FrameworkPascal(用舊版Watcom編寫)提供了32位擴展器。 關於創建FreeDOS虛擬機,從Microsoft SysInteral獲取工具。 它們包括一個創建VHD的工具。 一旦你在VM中運行FreeDOS,你就可以簡單地SYS VHD並在任何地方啟動它。 有足夠的准備為FreeDOS運行ISO映像,值得一提的是用於DOS的Seagate Seatools,它與FreeDOS內核一起發布。

運行所有這些的最佳(但不僅僅是)解決方案可能是Windows 7 Pro上的XPMode。 它運行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 buffer,USB,驅動器,屏幕和網卡(Web訪問)。 它可以在窗口和全屏之間切換。 XPMode的安裝是自動的(在激活Windows 7 Pro VM之后)。 Microsoft提供各種可下載的修補程序,用於更新注冊表以激活VM。 有一個MS支持可下載的熱修復程序必須運行才能在AMD Bulldozer架構上安裝。 XPMode使其桌面和虛擬硬盤處於休眠狀態,使其成為比基於硬件的系統更高效的環境。

通過一些額外的工作,Windows XP 32位可以安裝在任何虛擬機上,包括Windows XP 64位上的Microsoft虛擬機以及Oracle Box和VMWare。 然而,XPMode可能是最順暢的解決方案,因為某些安裝(例如用於Windows XP 64位的MS虛擬機)沒有全屏使用完整的物理顯示(僅約90%)。 如果您在XPMode中安裝瀏覽器和電子郵件,則可以全屏顯示並忘記Windows的新版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM