//Returns the last Win32 error, in string format. Returns an empty string if there is no error.#ifdef UNICODEstd::wstring GetSysError(DWORD errCode)#elsestd::string GetSysError(DWORD errCode)#endif{ DWORD errorMessageID = errCode; TCHAR* messageBuffer = nullptr; size_t size = FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, errorMessageID, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (TCHAR *)&messageBuffer, 0, NULL);#ifdef UNICODE std::wstring message(messageBuffer, size);#else std::string message(messageBuffer, size);#endif //Free the buffer. LocalFree(messageBuffer); return message;