gpt4 book ai didi

c - 有没有办法在 C 中写入 Windows 事件日志?

转载 作者:可可西里 更新时间:2023-11-01 12:45:04 25 4
gpt4 key购买 nike

我需要修改一个用 win32 C(不是 c++)编写的简单 Windows 服务。

有没有我可以用来将事件日志条目写入 Windows 事件日志而无需使用 eventcreate.exe 的库?还是我必须修改它才能编译为 C++ 程序?

最佳答案

是的,看函数ReportEvent及其 example .

扩展名为 .mc 的事件提供程序源文件如下所示:

; // MyEventProvider.mc 
; // This is the header section.
SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS
Informational=0x1:STATUS_SEVERITY_INFORMATIONAL
Warning=0x2:STATUS_SEVERITY_WARNING
Error=0x3:STATUS_SEVERITY_ERROR
)
FacilityNames=(System=0x0:FACILITY_SYSTEM
Runtime=0x2:FACILITY_RUNTIME
Stubs=0x3:FACILITY_STUBS
Io=0x4:FACILITY_IO_ERROR_CODE
)
LanguageNames=(English=0x409:MSG00409)
; // The following are the categories of events.
MessageIdTypedef=WORD
MessageId=0x1
SymbolicName=NETWORK_CATEGORY
Language=English
Network Events
... rest of file omitted

.mc 文件被编译为 .res 文件,链接到 .dll:

要编译消息文本文件,请使用以下命令:

 mc -U provider.mc

要编译消息编译器生成的资源,请使用以下命令:

rc provider.rc

要创建包含消息表字符串资源的纯资源 DLL,请使用以下命令(您可以从 Visual Studio 命令提示符运行该命令):

   link -dll -noentry provider.res

...

关于c - 有没有办法在 C 中写入 Windows 事件日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6571979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com