首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试读取EventLog时FormatMessage出现错误317

尝试读取EventLog时FormatMessage出现错误317
EN

Stack Overflow用户
提问于 2011-12-18 00:29:53
回答 1查看 1.2K关注 0票数 0

我在这方面也遇到过类似的问题。FormatMessage Fails with error code 317

不同的是,答案是这是由"FORMAT_MESSAGE_FROM_SYSTEM"引起的,但当我删除它时,它又发生了。

我正在尝试读取Windows Server2003中的EventLog。但是当我尝试使用FormatMessage函数时,我得到了317错误。

有趣的是,同样的代码也适用于Windows Server2008。我如何解决这个问题,或者我可以使用什么来代替FormatMessage

我的代码:

代码语言:javascript
复制
   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 )

祝你日安..

EN

回答 1

Stack Overflow用户

发布于 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_HMODULEFORMAT_MESSAGE_FROM_SYSTEM组合在一起,这是没有意义的。您希望从何处获取消息?是要从g_hResources还是从系统错误消息表中获取?从注释中可以看出,您似乎想要从g_hResources获取它,在这种情况下,您应该删除FORMAT_MESSAGE_FROM_SYSTEM。如果您仍然收到错误317,那么这意味着您传递的消息编号在g_hResources中不存在。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8546145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档