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
ERROR_ACCESS_DENIED
5 (0x5)
Access is denied.
如何正确连接控制台?
删除 AttachConsole 之前的 AllocConsole 调用。
来自 documentation:
一个进程最多可以附加到一个控制台。如果调用进程已经附加到控制台,则返回的错误代码是 ERROR_ACCESS_DENIED (5).
我在 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
ERROR_ACCESS_DENIED
5 (0x5)
Access is denied.
如何正确连接控制台?
删除 AttachConsole 之前的 AllocConsole 调用。
来自 documentation: 一个进程最多可以附加到一个控制台。如果调用进程已经附加到控制台,则返回的错误代码是 ERROR_ACCESS_DENIED (5).