У меня возникла следующая проблема
Для получения сообщения об ошибке в Win32
Я использовал стандартный код из MSDN
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// Process any inserts in lpMsgBuf.
// ...
// Display the string.
MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
// Free the buffer.
LocalFree( lpMsgBuf );
(находится в статье про ::FormatMessage)
Я выяснил, что по некоторым кодам ошибок
FormatMessage сама выдает ошибку. GetLastError
возвращает 317 — The system cannot find message
text for message number 0x%1 in the message
file for %2. Я обнаружил, что в kernel32.dll
(у меня Windows NT Server 4)
нет некоторого количества ошибочных кодов.
Начиная с 2010 ошибки. В приниципе, меня
интересуют ошибки WSA. Но все равно
хотелось бы разобраться. Самое что интересное
у некоторых людей сообщения по ошибке 2010
есть, у некоторых нет.