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

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

DDD
DDD원래의
2024-11-19 15:29:02566검색

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

GetLastError() 오류 코드에서 텍스트 오류 메시지 검색

Windows API 호출을 수행할 때 GetLastError() 함수는 정수 값을 제공합니다. 발생한 문제를 나타내는 오류 코드입니다. 더 많은 정보를 제공하는 오류 메시지를 보려면 다음 단계를 따르세요.

1. FormatMessageA 활용:

FormatMessageA 기능을 사용하면 오류 코드를 텍스트 오류 메시지로 변환할 수 있습니다. 다음 매개변수가 필요합니다.

  • FORMAT_MESSAGE_ALLOCATE_BUFFER: 메시지를 저장할 버퍼를 할당합니다.
  • FORMAT_MESSAGE_FROM_SYSTEM: 시스템 제공 오류 메시지를 사용합니다.
  • FORMAT_MESSAGE_IGNORE_INSERTS: 메시지를 무시합니다. 수정자(예: "%1").
  • NULL: 메시지가 매개변수 없이 형식화됨을 나타냅니다.
  • &messageBuffer: 메시지에 할당된 버퍼에 대한 포인터.

2. 함수 호출:

오류 코드를 포함하여 적절한 매개변수를 사용하여 FormatMessageA를 호출합니다:

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);

3. 오류 메시지 복사 및 해제:

메시지를 검색한 후 내용을 문자열로 복사하고 Win32의 할당된 버퍼를 해제합니다.

std::string message(messageBuffer, size);
LocalFree(messageBuffer);

다음 지침에 따라 다음을 수행할 수 있습니다. GetLastError()에서 반환된 오류 코드에서 자세한 오류 메시지를 텍스트 형식으로 가져오므로 Windows API 호출 중에 발생하는 문제에 대한 이해가 향상됩니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.