我在这方面也遇到过类似的问题。FormatMessage Fails with error code 317
不同的是,答案是这是由"FORMAT_MESSAGE_FROM_SYSTEM"引起的,但当我删除它时,它又发生了。
我正在尝试读取Windows Server2003中的EventLog。但是当我尝试使用FormatMessage函数时,我得到了317错误。
有趣的是,同样的代码也适用于Windows Server2008。我如何解决这个问题,或者我可以使用什么来代替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 )祝你日安..
发布于 2011-12-18 23:26:20
错误317是"The system cannot find message text for message number 0x%1 in the message file for %2."。这意味着MessageId不是系统已知的错误号。
您将FORMAT_MESSAGE_FROM_HMODULE和FORMAT_MESSAGE_FROM_SYSTEM组合在一起,这是没有意义的。您希望从何处获取消息?是要从g_hResources还是从系统错误消息表中获取?从注释中可以看出,您似乎想要从g_hResources获取它,在这种情况下,您应该删除FORMAT_MESSAGE_FROM_SYSTEM。如果您仍然收到错误317,那么这意味着您传递的消息编号在g_hResources中不存在。
https://stackoverflow.com/questions/8546145
复制相似问题