From f1cc5973173a049e3e62a6bc59a1b90682736afd Mon Sep 17 00:00:00 2001 From: vylsaz Date: Sat, 27 Jan 2024 06:59:56 +0000 Subject: [PATCH] Util to report Windows error --- src/windows/winError.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/windows/winError.c diff --git a/src/windows/winError.c b/src/windows/winError.c new file mode 100644 index 00000000..67d2ca41 --- /dev/null +++ b/src/windows/winError.c @@ -0,0 +1,16 @@ +#include + +static char* winErrorEx(DWORD dwError) { + char* buffer = NULL; + DWORD dwFlags = FORMAT_MESSAGE_MAX_WIDTH_MASK + | FORMAT_MESSAGE_ALLOCATE_BUFFER + | FORMAT_MESSAGE_FROM_SYSTEM + | FORMAT_MESSAGE_IGNORE_INSERTS; + DWORD dwResult = FormatMessageA(dwFlags, NULL, dwError, 0, (LPSTR)&buffer, 0, NULL); + if (dwResult==0 || buffer==NULL) { + fatal("Failed to get error message from FormatMessageA()"); + } + return buffer; +} + +static char* winError(void) { return winErrorEx(GetLastError()); }