下午好,尊敬的Habr读者。 这篇文章是创建动态.dll库的指南,该库包含在Windows事件查看器\应用程序和服务日志\ uuuu(作为示例)中的自定义记录器中显示所需的消息。

在自定义日志中,您通常可以看到其描述包含以下内容的消息:

这意味着yyyy事件源不包含ID和Description的必要集合。
为了纠正这种情况,有必要:
1.在以下路径中打开regedit:HKLM \ SYSTEM \ CurrentControlSet \ Services \ EventLog并确保您的分区存在。
2.创建eventMessage.txt,您需要在其中放置参数(
例如,使用msdn) ,并保存在必要的Windows-1251或Unicode编码中,格式为eventMessage.mc。
注意:当用您的ID和描述填充eventMessage时,
总是在描述之后,在新行上加一个点,然后将笔架放在新行上。
一个例子:
MessageId=0x1 SymbolicName=CAT_1 Language=English OutDescription for your application . MessageId=0x2
如果不考虑此功能,则在编译过程中可能会发生无法预料的错误。
3.以管理员身份运行cmd。
4.运行命令:mc.exe -u C:\ SomeFolder \ eventMessage.mc -r C:\ SomeFolder \ result
注意 :在特定情况下,mc.exe位于
C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x86
而不是
-u (Unicode)
格式,则可以使用
-A (W-1251 ANSI, )
,-
-r
选项是编译后将文件保存到的输出位置。
执行命令后,将创建以下内容:C:\ SomeFolder \ result中的二进制文件和eventMessage.rc文件
5.运行命令:rc.exe C:\ SomeFolder \ result \ eventMessage.rc
注意 :rc.exe与mc.exe位于同一目录中。
编译后,将创建eventMessage.res文件,这是创建动态库所必需的。
6.运行命令:link.exe -dll -noentry /out:C:\SomeFolder\result\OurMessageSet.dll C:\ SomeFolder \ result \ eventMessage.res。
注意:在特定情况下,link.exe位于
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\SDK\ScopeCppSDK\VC\bin
7.恭喜,我们已经与您一起创建了期待已久的库,但这还不是全部。 我们从步骤1进入regedit到目录。在目录字段中,创建一个字符串参数(字符串值),在EventMessageFile中命名此创建,并在该值中指示库的路径:C:\ SomeFolder \ result \ OurMessageSet.dll。 看起来像这样:

查看的工具:mc.exe,rc.exe,link.exe。
愿力量与你同在。