Windows8 的 AttachConsole(...) 替代品

Posted

技术标签:

【中文标题】Windows8 的 AttachConsole(...) 替代品【英文标题】:AttachConsole(...) alternative for Windows8 【发布时间】:2013-04-01 17:56:30 【问题描述】:

在 Windows8 上运行控制台(即父进程是 cmd.exe)应用程序时,AttachConsole(ATTACH_PARENT_PROCESS) 返回 TRUE,GetLastError() 返回 ERROR_NOT_SUPPORTED。有没有可以与这个操作系统一起使用的替代方案?

【问题讨论】:

如果 winapi 函数没有失败,请不要调用 GetLastError()。 从文档中,AttachConsole成功 时返回 true。有什么问题? 是的,GetLastError() 搞砸了 - AttachConsole(ATTACH_PARENT_PROCESS) && GetLastError() == 0,但是它在以前的 Windows 版本中返回 0。 【参考方案1】:

如果 AttachConsole 返回 true,GetLastError 的值是随机的(即,成功调用 AttachConsole 或实际上任何 Win32 API 函数都不会重置最后一个错误代码)。仅检查设置的错误代码。

【讨论】:

实际上另一个问题是应用程序不会等到附加控制台中的执行完成,例如 XP 不会发生

以上是关于Windows8 的 AttachConsole(...) 替代品的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Windows 应用程序输出到标准输入?

windows8.1preview是啥版本

ThinkPad---Windows8更换Windows7方法

windows8安装msi软件提示2503错误的解决办法

ubuntu引导怎么改回Windows8引导?

欢迎进入 Windows8 的世界!