2016-10-15 5 views
1

Windows에서 작동하는 Visual Studio 2013의 C++ 콘솔 응용 프로그램을 사용하고 있습니다.AttachConsole 오류 5 : 액세스가 거부되었습니다.

먼저 콘솔 FreeConsole을 사용하여 분리했습니다. 작동합니다. 그런 다음 AllocConsoleFreeConsole then AttachConsole not working으로 지정하고 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. 

가 어떻게 제대로 콘솔을 첨부하여야한다?

답변

2

AttachConsole 전에 AllocConsole 호출을 제거하십시오.

documentation : 프로세스를 최대 하나의 콘솔에 연결할 수 있습니다. 호출 한 프로세스가 이미 콘솔에 연결되어 있으면 반환되는 오류 코드는 ERROR_ACCESS_DENIED (5)입니다.

+0

당신이 제안한 것이 이전에했던 것과 정확히 같습니다 : http://stackoverflow.com/questions/40059618/freeconsole-then-attachconsole-not-working, 작동하지 않습니다. – athos

+0

그래서 FreeConsole의 결과를 확인 했습니까? –

+0

FreeConsole은 true를 반환합니다. 이는 이전 게시물이 설명 된대로 성공을 의미합니다. – athos

관련 문제