0

多年前,我使用 TurboC IDE 创建了一个程序,该程序也可以使用DOSbox运行。现在,当我尝试在 DOSbox 中运行使用 GCC 编译的任何程序时,出现以下消息:

此程序无法在 DOS 模式下运行

所以我的问题是,为什么不能在 DOSbox 中运行使用 GCC 编译的程序,而从 TurboC 编译的程序是?

PS:我想在DOSbox中运行它们的原因是我想在我的手机(安装了DOSbox)中运行这些程序。

4

2 回答 2

1

因为 MS DOS 是 16 位操作系统,不支持 32 位程序。此外,现代操作系统对直接硬件访问有更严格的看法,因此现代程序必须通过一些硬件抽象层来工作,而这些在 MS DOS 中也是缺失的。

于 2014-12-12T11:53:24.137 回答
1

有一个名为“DJGPP”的 GCC 发行版可以使用 GCC 编译程序,并使用 DPMI 来实现这一点。Dos 保护模式界面,基本上你必须在保护模式下运行程序。还有其他 C 环境,例如 Watcom 做同样的事情,但我认为 Borland 从来没有对它做过任何事情。

于 2015-12-01T04:25:33.140 回答