我遇到過與此類似的問題。 FormatMessage Fails with error code 317FormatMessage在嘗試讀取事件日誌時獲取錯誤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庫中記錄](http://msdn.microsoft.com/en-us/library/windows/desktop/ms679351.aspx#format_message_from_system):in這種情況「如果在由_lpSource_指定的模塊中未找到消息,則該函數搜索系統消息表」。 – 2011-12-18 18:08:14
我站好了。但奇怪的是,你不知道消息將被發現在哪裏。你應該知道。無論如何,事件日誌中的消息通常不會來自系統。它們是事件特定的,來自事件的消息提供者。 – 2011-12-18 18:38:40