我正在 Visual Studio 2013 中使用 C++ 控制台应用程序,在 Windows 上工作。
首先我使用分离控制台FreeConsole
, 有用;然后,调用AllocConsole
as FreeConsole 然后 AttachConsole 不工作建议,返回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
系统错误代码5的含义:
ERROR_ACCESS_DENIED
5 (0x5)
Access is denied.
我该如何正确连接控制台?
在 AttachConsole 之前删除 AllocConsole 调用。
来自文档:
一个进程最多可以附加到一个控制台。如果调用进程已附加到控制台,则返回的错误代码为 ERROR_ACCESS_DENIED (5)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)