【发布时间】:2010-04-07 17:29:05
【问题描述】:
好吧,我有一个简单的问题,至少我希望它简单。我对win32控制台感兴趣了一段时间。我们的老师告诉我们,windows 控制台仅用于 DOS 和实模式仿真目的。好吧,我知道这不是真的,因为 DOS 应用程序是由只使用控制台显示输出的模拟器运行的。我学到的另一件事是控制台自 NT 以来就内置在 Windows 中。出色地。但我找不到的是,控制台程序实际上是如何编写使用控制台的。我使用 Visual C++ 进行编程(嗯,用于学习)。所以,使用控制台我唯一需要做的就是选择控制台项目。我首先认为 Windows 决定它是在控制台中运行应用程序还是尝试在窗口模式下运行应用程序。所以我创建了win32程序并尝试了printf()。好吧,我无法编译它。我知道根据定义 printf() 将文本或变量打印到标准输出。我还发现 stdout 是输出的控制台接口。但是,我找不到实际的标准输出是什么。
所以,基本上我想问的是,控制台应用程序和win32应用程序之间的区别在哪里。我认为当 Windows 从“控制台系列”功能获得命令时,它会启动控制台。但显然它没有,所以必须有一些代码实际上命令窗口来创建控制台界面。
第二个问题是,在创建控制台时,windows如何识别哪个控制台终端用于哪个应用程序?我的意思是,什么是标准输出?它是内存中的一个区域,还是一些被调用的 Windows 例程?谢谢。
【问题讨论】: