AttachConsole 错误 5:访问被拒绝

AttachConsole Error 5: Access is denied

我在 Visual Studio 2013 年使用 C++ 控制台应用程序,致力于 Windows。

首先我使用 FreeConsole 分离了控制台,它可以工作;然后,按照的建议调用AllocConsole,returns true表示成功;最后,我尝试使用 AttachConsole 将其附加回去,但没有任何反应 --

#include <psapi.h>

DWORD winpid = GetCurrentProcessId(); // get pid
std::cout << winpid; // it works    
FreeConsole(); // console lost
bool succeed = AllocConsole(); //succeeded.
succeed = AttachConsole(winpid); // return false: failed.
if (!succeed)
    LastError = GetLastError(); // Error Code 5

System Error Code 5 means:

ERROR_ACCESS_DENIED
5 (0x5)
Access is denied.

如何正确连接控制台?

删除 AttachConsole 之前的 AllocConsole 调用。

来自 documentation: 一个进程最多可以附加到一个控制台。如果调用进程已经附加到控制台,则返回的错误代码是 ERROR_ACCESS_DENIED (5).