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 |