Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
多年前,我使用 TurboC IDE 创建了一个程序,该程序也可以使用DOSbox运行。现在,当我尝试在 DOSbox 中运行使用 GCC 编译的任何程序时,出现以下消息:
此程序无法在 DOS 模式下运行
所以我的问题是,为什么不能在 DOSbox 中运行使用 GCC 编译的程序,而从 TurboC 编译的程序是?
PS:我想在DOSbox中运行它们的原因是我想在我的手机(安装了DOSbox)中运行这些程序。
因为 MS DOS 是 16 位操作系统,不支持 32 位程序。此外,现代操作系统对直接硬件访问有更严格的看法,因此现代程序必须通过一些硬件抽象层来工作,而这些在 MS DOS 中也是缺失的。
有一个名为“DJGPP”的 GCC 发行版可以使用 GCC 编译程序,并使用 DPMI 来实现这一点。Dos 保护模式界面,基本上你必须在保护模式下运行程序。还有其他 C 环境,例如 Watcom 做同样的事情,但我认为 Borland 从来没有对它做过任何事情。