오류 코드에서 오류 메시지 검색: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!