FormatMessage получает ошибку 317 при попытке прочитать EventLog
У меня была почти схожая проблема с этим. Сбой FormatMessage с кодом ошибки 317
Разница в том, что ответом является то, что это вызвано "FORMAT_MESSAGE_FROM_SYSTEM"
но когда я убираю это, это случается снова.
Я пытаюсь читать с EventLog
в Windows Server 2003. Но когда я пытаюсь использовать FormatMessage
функция, которую я получаю 317
ошибка.
Интересно, что тот же код работает для Windows Server 2008. Как я могу это исправить или что я могу использовать вместо FormatMessage
?
Мой код:
FormatMessage(FORMAT_MESSAGE_FROM_HMODULE |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_ALLOCATE_BUFFER,
g_hResources, // handles DLL containing message table
MessageId,
0, // Default language
(LPWSTR) &pMessage,
0,
(va_list*)pArgs )
Хороший день для тебя..
1 ответ
Ошибка 317: "Системе не удалось найти текст сообщения для номера сообщения 0x%1 в файле сообщений для% 2"., Это означает, что MessageId
не является номером ошибки, известным системе.
Вы объединяете FORMAT_MESSAGE_FROM_HMODULE
а также FORMAT_MESSAGE_FROM_SYSTEM
, который не имеет смысла. Откуда вы хотите получить сообщение? Вы хотите получить это от g_hResources
или из таблицы сообщений об ошибках системы? Из комментария звучит так, будто вы хотите получить его от g_hResources
в этом случае вы должны удалить FORMAT_MESSAGE_FROM_SYSTEM
, Если вы все еще получаете ошибку 317, то это означает, что номер сообщения, который вы передали, не существует в g_hResources
,