2013-02-20 18 views
0

我写的Windows XP文件名 “的hello.c” 作为简单的Hello World应用:用以下命令编译赢Vista的 - DOSBox中 - GCC - 世界你好 - 控制台应用程序没有运行

#include<stdio.h> 
int main(){ 
     printf("Hello World\n"); 
     return 0; 
} 

gcc hello.c 

现在与Windows Vista中另一台机器上安装了DOSBox中的应用,并试图运行A.EXE由GCC编译

的应用程序不运行,并提供以下信息:

This Program cannot be run in DOS mode. 

但是当我双击在a.exe的文件在Windows Explorer中运行,并说:

Hello World 

为什么这个消息来了.....

+2

'gcc'可能会生成一个在* console *中运行的应用程序,但* console *不是** DOS **。 – phoeagon 2013-02-20 15:14:19

回答

1

您编译这个程序对于Windows而言,不适用于DOS。不起作用。您需要编译该应用程序才能在DOS上工作。你为什么使用Dosbox?

1

你已经编译了一个Windows程序,它只能在Windows下运行,而不能在DOS或者模拟DOS下运行。直接运行程序,无需DosBox。

0

Windows和DOS控制台看起来相似并且共享一些相同类型的命令,但它们构建在两个完全不同的操作系统上。

Windows控制台模式应用程序运行现代32位或64位代码,并可以访问所有广泛的Windows API。

DOS命令行是DOS的一部分,它是一个较老的操作系统,它主要运行16位代码。它有自己独立的API和约定,用于文件处理,内存管理和硬件支持等。这是DOSBox模拟的平台。所以,DOSBox不会运行Windows程序。 (也就是说,它可以运行Windows本身的早期版本,因为这些都是普通的DOS程序)。

  • 如果你想编译程序在DOS下运行,你需要一个编译器从那个时代对于该操作系统。 Turbo C++是个不错的选择(搜索'turbo C++ 3.0 abandonware')。

  • 如果你想编译一个在控制台中运行的Windows应用程序,那么你现有的编译器是完美的,但你不想DOSBox。改为打开Windows命令提示符/行/东西(开始 - >运行 - >命令 - >输入)。

+0

在赢vista/7/8有全屏的问题,然后如何解决 – 2013-02-20 17:35:25

+0

@ Vineet.Chandigarh什么问题? – Boann 2013-02-20 18:44:14

相关问题