【问题标题】:AttachConsole(...) alternative for Windows8Windows8 的 AttachConsole(...) 替代品
【发布时间】: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。

标签: c++ windows winapi process console


【解决方案1】:

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

【讨论】:

  • 实际上另一个问题是应用程序不会等到附加控制台中的执行完成,例如 XP 不会发生
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-08
  • 2012-01-25
  • 2015-08-05
  • 2011-01-01
  • 2011-10-24
  • 2011-05-31
相关资源
最近更新 更多