WriteFile(GetStdHandle(STD_ERROR_HANDLE), s, PLD_Private_strlen(s), &dummy, NULL);\r
}\r
\r
+static void PLD_Private_FormatError(int code, char *s, int len)\r
+{\r
+ DWORD_PTR arg = (DWORD_PTR)s;\r
+ FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ARGUMENT_ARRAY,\r
+ NULL,\r
+ code,\r
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),\r
+ s,\r
+ len,\r
+ (va_list *)&arg);\r
+}\r
+\r
static HMODULE PLD_Private_LoadLibrary_wrapper(LPCSTR lpLibFileName)\r
{\r
HMODULE hModule = GetModuleHandleA(lpLibFileName);\r
static void PLD_Private_Log(const char *message, const char *name, int err)\r
{\r
PLD_Private_WriteString(message);\r
- PLD_Private_WriteString(" (");\r
+ PLD_Private_WriteString(" ");\r
PLD_Private_WriteString(name);\r
- PLD_Private_WriteString(", err = ");\r
-\r
- char itoastr[8 + 1];\r
- char *iter = &itoastr[sizeof(itoastr) - 1];\r
- *iter-- = 0;\r
- for (int i = 0; i < sizeof(itoastr) - 1; i++) {\r
- int digit = err & 0xf;\r
- if (digit >= 9)\r
- digit = 'A' + (digit - 10);\r
- else\r
- digit = '0' + digit;\r
- *iter-- = digit;\r
- err >>= 4;\r
- }\r
- PLD_Private_WriteString(++iter);\r
- PLD_Private_WriteString(")\n");\r
+#ifdef _WIN32\r
+ PLD_Private_WriteString("\r\n");\r
+#else\r
+ PLD_Private_WriteString("\n");\r
+#endif\r
+ char errtext[256];\r
+ PLD_Private_FormatError(err, errtext, sizeof(errtext));\r
+ PLD_Private_WriteString(errtext);\r
}\r
\r
#ifndef PLDLOG\r