이 문제는 거의 비슷합니다. FormatMessage Fails with error code 317EventLog를 읽으려고 시도하는 중에 FormatMessage에서 오류 317이 발생합니다.
이 차이는 "FORMAT_MESSAGE_FROM_SYSTEM"
에 의해 발생하는 것으로 대답하지만 제거하면 다시 발생합니다.
Windows Server 2003에서 EventLog
을 읽으려고합니다. 그러나 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)
좋은 하루 ..
FORMAT_MESSAGE_FROM_HMODULE과 FORMAT_MESSAGE_FROM_SYSTEM을 함께 사용하면 명시 적으로 [MSDN Library] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms679351.aspx#format_message_from_system)에서 확인할 수 있습니다. 이 경우 "함수는 _lpSource_"에 지정된 모듈에서 메시지를 찾을 수없는 경우 시스템 메시지 테이블을 검색합니다. –
나는 고쳐졌다. 그러나 메시지가 어디에서 발견 될지 모르는 것은 이상한 일입니다. 당신은 알고 있어야. 일반적으로 이벤트 로그의 메시지는 시스템에서 가져 오지 않습니다. 이 이벤트는 이벤트별로 제공되며 이벤트의 메시지 공급자에서 제공됩니다. –