> 백엔드 개발 > C++ > Windows GetLastError() 오류 코드를 사람이 읽을 수 있는 메시지로 변환하려면 어떻게 해야 합니까?

Windows GetLastError() 오류 코드를 사람이 읽을 수 있는 메시지로 변환하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-11-19 20:38:03
원래의
903명이 탐색했습니다.

How Can I Convert Windows GetLastError() Error Codes into Human-Readable Messages?

GetLastError()에서 반환된 오류 코드를 해석하는 방법

Windows API 호출을 호출한 후 개발자는 기본 오류를 이해하는 데 오류 상황이 발생할 수 있습니다. 실패 이유가 결정적이다. 기본 Win32 API 함수 GetLastError()는 오류 코드를 제공하지만 이 코드는 정수로 표시되어 의미를 해독하기 어렵습니다.

오류 코드를 텍스트 메시지로 변환

사람이 읽을 수 있는 오류 메시지를 얻으려면 개발자는 이러한 숫자 오류 코드를 텍스트 설명으로 변환하는 메커니즘이 필요합니다. 아래 코드 조각은 이 변환 프로세스를 보여줍니다.

#include <windows.h>
#include <string>

std::string GetLastErrorAsString()
{
    // Retrieve the error message ID, if available.
    DWORD errorMessageID = ::GetLastError();
    if (errorMessageID == 0) {
        return std::string(); // No error message has been recorded.
    }
    
    LPSTR messageBuffer = nullptr;

    // Instruct Win32 to generate the message string for the provided error ID.
    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);
    
    // Transfer the error message into a std::string.
    std::string message(messageBuffer, size);
    
    // Deallocate Win32's message buffer.
    LocalFree(messageBuffer);
            
    return message;
}
로그인 후 복사

사용법:

이 함수를 활용하려면 다음을 반환할 수 있는 API 호출 후에 GetLastErrorAsString()을 호출하면 됩니다. 오류 코드. 텍스트 오류 메시지가 포함된 std::string을 반환하며, 이는 사용자에게 표시되거나 추가 진단을 위해 기록될 수 있습니다.

위 내용은 Windows GetLastError() 오류 코드를 사람이 읽을 수 있는 메시지로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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