首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows控制台

Windows控制台
EN

Stack Overflow用户
提问于 2010-04-08 01:29:06
回答 2查看 408关注 0票数 4

好吧,我有一个简单的问题,至少我希望它很简单。有一段时间我对win32控制台很感兴趣。我们的老师告诉我们,windows控制台只用于DOS和真实模式仿真。嗯,我知道这不是真的,因为DOS应用程序是由模拟器运行的,模拟器只使用控制台来显示输出。我学到的另一件事是,从NT开始,控制台就被内置到Windows中。井。但我找不到的是,控制台程序到底是如何使用控制台编写的。我使用Visual C++进行编程(好吧,是为了学习)。因此,要使用console,我唯一需要做的就是选择console项目。我首先想到的是windows决定它是在控制台上运行应用程序还是尝试在窗口模式下运行应用程序。所以我创建了win32程序并尝试了printf()。嗯,我无法编译它。我知道,根据定义,printf()将文本或变量打印到stdout。我还发现stdout是输出的控制台接口。但是,我找不到真正的stdout是什么。

所以,基本上我想问的是,控制台应用程序和win32应用程序的区别在哪里。我以为windows会在收到" console -family“函数的命令时启动控制台。但很明显它不是这样的,所以一定有一些代码实际命令windows创建控制台界面。

第二个问题是,在创建控制台时,windows如何识别哪个控制台终端用于哪个应用程序?我的意思是,什么是标准输出?它是内存中的一个区域,还是被调用的某个windows例程?谢谢。

EN

Stack Overflow用户

发布于 2010-04-08 01:48:32

为了回答你的第二个问题,Windows中的stdout被映射到GetStdHandle(STD_OUTPUT_HANDLE)返回的HANDLE,后者在默认情况下映射到CONOUT$。如果你愿意,你可以通过调用CreateFile("CONOUT$", ...)来访问它。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2594552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档