> 백엔드 개발 > C++ > 본문

Windows API 오류 코드를 사람이 읽을 수 있는 오류 메시지로 변환하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-22 05:57:13
원래의
876명이 탐색했습니다.

How to Translate Windows API Error Codes into Human-Readable Error Messages?

오류 코드에서 오류 메시지 검색: GetLastError() 이해하기

질문:

이후 Windows API 함수를 호출할 때 해당 오류 메시지에 어떻게 액세스할 수 있습니까? 이해하기 쉬운 텍스트 형식? GetLastError()는 숫자 오류 코드만 제공합니다.

답변:

GetLastError()에서 보고된 숫자 오류 코드를 의미 있는 문자열 표현으로 변환하려면 다음을 사용합니다. 단계:

//Returns the last Win32 error, in string format. Returns an empty string if there is no error.
std::string GetLastErrorAsString()
{
    //Fetch the error message ID (if any)
    DWORD errorMessageID = ::GetLastError();
    if (errorMessageID == 0) {
        return std::string(); //No error message recorded
    }

    LPSTR messageBuffer = nullptr;

    //Request Win32 to translate the error ID into a string representation
    //We specify options to allocate the message buffer dynamically and retrieve the localized system message
    size_t size = FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
                                 NULL, errorMessageID, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&messageBuffer, 0, NULL);

    //Copy the error message into a string
    std::string message(messageBuffer, size);

    //Release the dynamically allocated buffer used by Win32
    LocalFree(messageBuffer);

    return message;
}
로그인 후 복사

위 내용은 Windows API 오류 코드를 사람이 읽을 수 있는 오류 메시지로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿