C#的消息编译器(MC.exe)是否有等价物?

时间:2016-10-28 20:58:50

标签: c# .net t4

一点背景:

Message Compiler是一个非常有用的工具,可以将消息文本文件转换为C / C ++头文件,从而为消息提供强类型。

消息文本文件:

; // ***** Sample.mc *****
; // This is the header section.

MessageIdTypedef=DWORD

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)
LanguageNames=(Japanese=0x411:MSG00411)

; // The following are message definitions.

MessageId=0x1
Severity=Error
Facility=Runtime
SymbolicName=MSG_BAD_COMMAND
Language=English
You have chosen an incorrect command.

消息编译器(mc.exe)将上述内容转换为头文件:

..
#define MSG_BAD_COMMAND <some-hex-number>
..

此头文件可以轻松为错误代码/消息提供强类型。

就我而言,我需要在C ++和C#代码中使用消息文本文件中定义的消息。所以我需要一个类似于:

的转换
public class SomeClass
{
   public const uint MSG_BAD_COMMAND = <some-hex-number>;

我想找到一个开箱即用的工具,并像mc.exe一样方便转换。

请建议。

0 个答案:

没有答案