谁知道如何使用mc.exe(消息编译器)?

问题描述 投票:0回答:4

我正在尝试使用 mc.exe 为我的事件日志写入程序制作消息文件。但即使是微软提供的示例消息文件也无法编译。谁知道如何写一个可以被mc.exe编译的消息文件?

编辑:我收到的错误消息是:

msgs.mc(1) : error : expected keyword
- ??

编辑2:问题已解决。 mc.exe 只能支持 Unicode 或 ANSI 编码的源文件。我的文件编码为 UTF8。就是这样。

谢谢。

c# c++ event-log
4个回答
6
投票

始终记录您收到的错误消息

被迫猜测:如果您在第 #82 行中收到错误,抱怨无效字符 (0x2e),则在文本编辑器中打开文件,将光标放在 .然后按 Enter 键,以便该行以换行符结束。


6
投票

问题解决了。 mc.exe 只能支持 Unicode 或 ANSI 编码的源文件。我的文件编码为 UTF8。就是这样。

谢谢大家。


2
投票

该示例适用于我的 Visual Studio 2008 或 2010。发布您的 msgs.mc 文件如何。

您还保存为普通的 ascii 格式吗?也许编码标头令人困惑......


0
投票

这里我主要介绍如何通过VS Developer命令行示例将mc.exe集成到Visual Studio构建环境中。

消息文件需要从 Visual Studio Developer 命令行进行如下编译:

  1. mc -v MyWebService.mc
  2. rc -r -fo MyWebService.res MyWebService.rc
  3. link -dll -noentry -out:MyWebServiceEvtID.dll MyWebService.res /MACHINE:X86

另外,请确保将 MyWebServiceEvtID.dll 复制到 C:\inetpub\wwwroot\MyWebServices\bin

最后,确保注册表包含如下条目:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services ventlog\Application.MyWebService] “EventMessageFile”=“C:\inetpub\wwwroot\MyWebServices\bin\MyWebServiceEvtID.dll”

可以将上述条目复制到 .reg 文件并使用 regedit 工具执行

© www.soinside.com 2019 - 2024. All rights reserved.