【发布时间】:2016-10-15 13:29:37
【问题描述】:
我正在使用 Visual Studio 2013 中的 C++ 控制台应用程序,在 Windows 上工作。
首先我使用 FreeConsole 分离了控制台,它可以工作;然后,我尝试使用 AttachConsole 将其附加回来,但什么也没发生 -
#include <psapi.h>
DWORD winpid = GetCurrentProcessId(); // get pid
std::cout << winpid; // it works
FreeConsole(); // console lost
std::cout << "Lost to the bit bucket"; //nothing happen, as expected
AttachConsole(winpid); // try find the console back....
std::cout << "c"; // ... but failed
如何找回丢失的控制台?
【问题讨论】:
-
您应该首先检查
AttachConsole返回的内容。如果它失败了,那么你应该得到错误代码来找出原因。 -
好吧,您当然可以不附加到不再存在的控制台。您必须改用 AllocConsole() 并重新初始化流,以便它们与新控制台一起使用。
-
@HansPassant thx 的建议,现在我有另一个错误:stackoverflow.com/questions/40059902/…
标签: c++ windows console-application