4

我一直在谷歌上寻找这个,但从来没有得到明确的答案。我正在尝试编写一个简单的 hello world 应用程序并使其在 msdos 下运行(我将安装在附近的旧钻机上)。

但首先,我一直在尝试编译一个普通的控制台应用程序并将其放入 dosbox 以测试它不起作用,只是说它无效。所以我假设我需要其他东西来编译它。这是否意味着我有义务在 msdos 环境中构建我的代码?即使是这种情况,我也不知道该怎么做,有点像msdos dummy ..

如果有人能对我的案子有所了解,我将不胜感激!

PS:我运行的是64位系统

4

5 回答 5

4

您可以为 DOS 使用免费的DJGPP编译器。
是使用 DJGPP 的文档

于 2012-10-09T18:43:36.737 回答
3

我假设您指的是实际的 DOS,而不是在 Windows 中运行的命令提示符。

DOS 是 16 位操作系统,因此您需要一个能够生成 16 位二进制文​​件的编译器。Windows 控制台应用程序是 32 位的,因此它不会在 DOS 下运行。您不必在 DOS 环境中构建代码,您只需要正确的编译器即可。

至于编译器,您可能需要查看OpenWatcom

于 2012-10-09T18:45:08.337 回答
2

Microsoft Visual C++ 1.52 是 Microsoft C++ 编译器的唯一可用版本,它支持编译 16 位代码。

http://social.msdn.microsoft.com/forums/en-US/Vsexpressvc/thread/cfc848e8-a797-42a5-8537-892cfc234123

您需要找到一个可以生成 16 位 COM 文件的旧编译器。

于 2012-10-09T18:46:25.437 回答
1

在 64 位系统上运行它会是一个问题吗?...

是的,64 位 Windows 无法执行 16 位程序。如果您安装一台带有 MS-DOS 或 32 位 Windows 系统的虚拟 PC,则该虚拟 PC 将能够执行 16 位程序。

您是否需要编辑您的问题以说明您使用的是 64 位 Windows?

于 2012-10-11T03:44:34.360 回答
0

听起来您正在现代版本的 Windows 上编译控制台应用程序,并试图简单地将其复制到旧的 DOS 框。问题是 DOS 不向前兼容。您不能在 Windows 之前的 DOS 版本上运行使用 Windows 7 编译的程序。最简单的解决方案是在 DOS 框本身上编译您的程序。或者,如果您想在较新的机器上进行开发,您需要获得一个针对您要运行程序的操作系统的交叉编译器。

于 2012-10-09T18:43:55.100 回答