다음을 통해 공유


AttachConsole 함수

호출 프로세스를 클라이언트 애플리케이션으로 지정된 프로세스의 콘솔에 연결합니다.

구문

BOOL WINAPI AttachConsole(
  _In_ DWORD dwProcessId
);

매개 변수

dwProcessId [in]
콘솔을 사용할 프로세스의 식별자입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
pid 지정된 프로세스의 콘솔을 사용합니다.
ATTACH_PARENT_PROCESS (DWORD)-1 현재 프로세스의 부모 콘솔을 사용합니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

프로세스는 최대 하나의 콘솔에 연결할 수 있습니다. 호출 프로세스가 이미 콘솔에 연결된 경우 반환된 오류 코드는 ERROR_ACCESS_DENIED. 지정된 프로세스에 콘솔이 없으면 반환된 오류 코드가 ERROR_INVALID_HANDLE. 지정된 프로세스가 없으면 반환된 오류 코드가 ERROR_INVALID_PARAMETER.

프로세스는 FreeConsole 함수를 사용하여 콘솔에서 자신을 분리할 수 있습니다. 다른 프로세스가 콘솔을 공유하는 경우 콘솔은 제거되지 않지만 FreeConsole이라는 프로세스는 콘솔을 참조할 수 없습니다. 콘솔에 연결된 마지막 프로세스가 종료되거나 FreeConsole을 호출하면 콘솔이 닫힙니다. 프로세스가 FreeConsole을 호출한 후 AllocConsole 함수를 호출하여 새 콘솔을 만들거나 다른 콘솔에 연결할 AttachConsole을 만들 수 있습니다.

이 함수는 주로 /SUBSYSTEM:WINDOWS연결된 애플리케이션에 유용합니다. 이는 프로그램의 기본 메서드를 입력하기 전에 콘솔이 필요하지 않다는 것을 운영 체제에 의미합니다. 이 경우 GetStdHandle검색된 표준 핸들은 AttachConsole이 호출될 때까지 시작 시 유효하지 않을 수 있습니다. 예외는 애플리케이션이 부모 프로세스에 의한 핸들 상속을 사용하여 시작되는 경우입니다.

이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 0x0501 이상을 정의합니다. 자세한 내용은 Windows 헤더 사용을 참조 하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003[데스크톱 앱만 해당]
헤더 ConsoleApi.h(WinCon.h를 통해, Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

콘솔 함수

콘솔

AllocConsole

FreeConsole

GetConsoleProcessList