GetLastError 함수(errhandlingapi.h)

호출 스레드의 마지막 오류 코드 값을 검색합니다. 마지막 오류 코드는 스레드별로 유지 관리됩니다. 여러 스레드는 서로의 마지막 오류 코드를 덮어쓰지 않습니다.

Visual Basic: 애플리케이션은 err을 호출해야 합니다 . GetLastError 대신 LastDllError.

구문

_Post_equals_last_error_ DWORD GetLastError();

반환 값

반환 값은 호출 스레드의 마지막 오류 코드입니다.

마지막 오류 코드를 설정하는 각 함수에 대한 설명서의 반환 값 섹션에서는 함수가 마지막 오류 코드를 설정하는 조건을 기록합니다. 스레드의 마지막 오류 코드를 설정하는 대부분의 함수는 실패할 때 설정합니다. 그러나 일부 함수는 성공 시 마지막 오류 코드도 설정합니다. 마지막 오류 코드를 설정하기 위해 함수가 문서화되지 않은 경우 이 함수에서 반환하는 값은 설정된 가장 최근의 마지막 오류 코드일 뿐입니다. 일부 함수는 성공 시 마지막 오류 코드를 0으로 설정하고 다른 함수는 그렇지 않습니다.

설명

호출 스레드에서 실행하는 함수는 SetLastError 함수를 호출하여 이 값을 설정합니다. 함수의 반환 값이 이러한 호출이 유용한 데이터를 반환한다는 것을 나타내는 경우 GetLastError 함수를 즉시 호출해야 합니다. 이는 일부 함수가 성공하면 SetLastError 를 0으로 호출하여 가장 최근에 실패한 함수에서 설정한 오류 코드를 초기화하기 때문입니다.

시스템 오류 코드에 대한 오류 문자열을 가져오려면 FormatMessage 함수를 사용합니다. 운영 체제에서 제공하는 오류 코드의 전체 목록은 시스템 오류 코드를 참조하세요.

함수에서 반환되는 오류 코드는 Windows API 사양의 일부가 아니며 운영 체제 또는 디바이스 드라이버에 따라 달라질 수 있습니다. 따라서 각 함수에서 반환할 수 있는 오류 코드의 전체 목록을 제공할 수 없습니다. 또한 설명서에 반환할 수 있는 오류 코드의 일부 목록도 포함되지 않은 함수도 많이 있습니다.

오류 코드는 32비트 값입니다(비트 31이 최상위 비트임). 비트 29는 애플리케이션 정의 오류 코드용으로 예약되어 있습니다. 이 비트가 설정된 시스템 오류 코드가 없습니다. 애플리케이션에 대한 오류 코드를 정의하는 경우 이 비트를 1로 설정합니다. 이는 오류 코드가 애플리케이션에 의해 정의되었음을 나타내며, 오류 코드가 시스템에서 정의한 오류 코드와 충돌하지 않도록 합니다.

시스템 오류를 HRESULT 값으로 변환하려면 HRESULT_FROM_WIN32 매크로를 사용합니다.

예제

예제는 Last-Error 코드 검색을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 errhandlingapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

오류 처리 함수

FormatMessage

HRESULT_FROM_WIN32

마지막 오류 코드

SetLastError

SetLastErrorEx

VBS Enclave에서 사용할 수 있는 Vertdll API