你这个程序没有使用 {$APPTYPE CONSOLE} 编译指示,那么编译器默认情况下将此程序编译
为基于 GUI 的图形用户接口程序,那么 Write、Writeln、Read、Readln 的输入输出必须
指定文件才能正确!除非你在程序中的 program intdemo 下一行加入 {$APPTYPE CONSOLE}
那么就编译为控制台程序,虽然也是基于 Win32 的,但是完全是模拟了传统 DOS 程序的
行为,不使用 GUI 的。这时,Write 等过程将自动把标准输入输出设备映射为默认文件进
行操作,程序就正常了。这种情况在 VC++、C++Builder 中都是一样的!如果不信的话,你
可以在 VC++ 中试试 printf 函数,只要不编译为控制台模式程序,也会出错的。问题就
在于这个标准 I/O 设备上。对于过去的老的 Pascal 程序,Delphi 其实是完全支持的,
只要你把他编译为控制台模式就可以了,不过对于某些特殊的程序(比如使用了 BGI)就
不行了。还有一点,就是控制台模式程序虽然很像传统的 DOS 程序,但内核却是真正的
Win32 结构,绝对不能在真正的纯 DOS 环境下运行(比如 DOS 6.22),只能在 Win9x/nt/2000
的 MS-DOS 方式下运行。不过,我已经往 中国软件 www.csdn.net 上传了一个 Delphi 的
扩展开发包,可以使 Delphi 也可以开发出真正的纯 32 位的保护模式 DOS 程序,就像
用 Watcom C++ 开发的 DOS4GW 程序一样,完全的 DOS 内核,可以使用 4GB 内存,保留了
Delphi 的优秀的 OOP 结构……具体的内容可以在大富翁论坛里找我发的一个帖子,名字
好像叫“Delphi for DOS”吧,我记不清了