다음을 통해 공유


메시지 컴파일러 작업

WDK(Windows 드라이버 키트)는 MSBuild를 사용하여 드라이버를 빌드할 때 MC.exe 도구를 실행할 수 있도록 MessageCompiler 작업을 제공합니다. MC.exe 사용에 대한 자세한 내용은 메시지 컴파일러(MC.exe)를 참조하세요.

MSBuild는 MessageCompile 항목을 사용하여 MessageCompiler 작업에 대한 매개 변수를 보냅니다. MessageCompile 항목은 프로젝트 파일에서 mc.exe 항목 메타데이터에 액세스합니다.

다음 예제에서는 .vcxproj 파일에서 메타데이터를 편집하는 방법을 보여 주었습니다.

<ItemGroup>
    <MessageCompile Include="a.mc">
      <GenerateBaselineResource>true</GenerateBaselineResource>
      <BaselineResourcePath>c:\test\</BaselineResourcePath>
    </MessageCompile>
</ItemGroup>

다음 예제에서는 명령줄 호출을 보여줍니다.

mc.exe –s "c:\test\" a.mc

위의 예제에서 MSBuild는 메타데이터 GenerateBaselineResource가 true로 설정되어 있으므로 -s 스위치를 사용하여 파일 a.mc mc.exe 호출합니다. 또한 MSBuild는 BaselineResourcePath 메타데이터를 사용하여 -s 스위치에 대한 인수를 지정합니다.

MessageCompiler 작업 매개 변수 항목 메타데이터 도구 스위치
Sources

선택적 문자열 매개 변수입니다. 컴파일할 매니페스트 파일의 이름을 지정합니다. 컴파일할 메시지 파일의 이름을 지정합니다.

@(MessageCompile)

<filename.man>

<filename.mc>

ANSIInputFile

입력 파일이 ANSI(기본값)임을 지정합니다.

%(MessageCompile.ANSIInputFile) -a
ANSIMessageInBinFile

의 메시지를 지정합니다. BIN 파일은 ANSI여야 합니다.

%(MessageCompile.ANSIMessageInBinFile) -A
EnableDebugOutputPath

true로 설정되면 –x 스위치를 사용하도록 설정합니다.

%(MessageCompile.EnableDebugOutputPath)
DebugOutputPath

컴파일러가 .dbg C include 파일을 배치하는 폴더를 지정합니다. .dbg 파일은 메시지 ID를 기호 이름에 매핑합니다.

%(MessageCompile.DebugOutputPath) -x<경로>
EnableCallOutMacro

로깅하는 동안 사용자 코드를 호출하는 콜아웃 매크로를 추가합니다. 이 스위치는 C#에 유효하지 않으며 무시됩니다.

%(MessageCompile.EnableCallOutMacro) -공동
EventmanPath

eventman.xsd 파일의 경로를 지정합니다.

%(MessageCompile.EventmanPath) -w<파일>
GenerateBaselineResource

true로 설정되면 -s 스위치를 사용하도록 설정합니다.

%(MessageCompile.GenerateBaselineResource)
BaselineResourcePath

공급자당 이진 리소스를 생성합니다. 요약 전역 리소스 MCGenResource.BIN 생성합니다.

%(MessageCompile.BaselineResourcePath) -s<경로>
GenerateC#LoggingClass

FX3.5 Eventing 클래스를 기반으로 C#(관리형) 로깅 클래스를 생성합니다.

%(MessageCompile.GenerateC#LoggingClass) -cs<네임스페이스>
GenerateC#StaticLoggingClass

FX3.5 Eventing 클래스를 기반으로 정적 C#(관리형) 로깅 클래스를 생성합니다.

%(MessageCompile.GenerateC#StaticLoggingClass) -css<네임스페이스>
GeneratedFilesBaseName

생성된 파일의 기본 이름을 지정합니다. 기본값은 입력 파일의 basename입니다.

%(MessageCompile.GeneratedFilesBaseName) -z<basename>
GeneratedHeaderPath

true로 설정되면 -h 스위치를 사용하도록 설정합니다.

%(MessageCompile.GeneratedHeaderPath)
HeaderFilePath

C 포함 파일을 만들 위치의 경로를 지정합니다. 기본값은 입니다.

%(MessageCompile.HeaderFilePath) -h<경로>
GeneratedRcAndMessagesPath

true로 설정되면 -r 스위치를 사용하도록 설정합니다.

%(MessageCompile.GeneratedRcAndMessagesPath)
RCFilePath

RC의 경로에 포함된 파일 및 포함된 이진 메시지 리소스 파일을 지정합니다. 기본값은 입니다.

%(MessageCompile.RCFilePath) -r<경로>
GenerateKernelModeLoggingMacros

커널 모드 로깅 매크로를 생성합니다.

%(MessageCompile.GenerateKernelModeLoggingMacros) -km
GenerateMOFFile

생성된 모든 함수 및 매크로에 대한 하위 수준 지원을 생성합니다. MOF 파일은 매니페스트에서 생성됩니다. MOF 파일은 "-h" 스위치로 지정된 위치에 배치됩니다.

%(MessageCompile.GenerateMOFFile) -Mof
GenerateOLE2Header

OLE2 헤더 파일을 생성합니다. 상태 코드 정의 대신 HRESULT 정의를 사용합니다.

%(MessageCompile.GenerateOLE2Header) -o
GenerateUserModeLoggingMacros

사용자 모드 로깅 매크로를 생성합니다.

%(MessageCompile.GenerateUserModeLoggingMacros) -Um
HeaderExtension

헤더 파일의 확장명(1-3자)을 지정합니다.

%(MessageCompile.HeaderExtension) -e<확장>
MaximumMessageLength

메시지의 크기가 길이> 문자를 초과하는 경우 경고를 생성합니다<.

%(MessageCompile.MaximumMessageLength) -m<길이>
PrefixMacroName

생성된 각 로깅 매크로에 적용되는 매크로 이름 접두사를 정의합니다. 기본값은 "EventWrite"입니다.

%(MessageCompile PrefixMacroName) -p<접두사>
RemoveCharsFromSymbolName

매크로 이름을 구성하기 전에 제거할 각 이벤트 기호 이름의 시작 부분에 있는 텍스트를 정의합니다. 기본값은 NULL입니다.

%(RemoveCharsFromSymbolName) -P<접두사>
SetCustomerbit

전체 메시지 ID에서 고객 비트를 설정합니다.

%(MessageCompile.SetCustomerbit) -c
TerminateMessageWithNull

메시지 테이블에서 null 문자로 모든 문자열을 종료합니다.

%(MessageCompile.TerminateMessageWithNull) -n
UnicodeInputFile

입력 파일은 유니코드입니다.

%(MessageCompile.UnicodeInputFile) -u
UnicodeMessageInBinFile

의 메시지 BIN 파일은 유니코드(기본값)여야 합니다.

%(MessageCompile.UnicodeMessageInBinFile) -U
UseBaseNameOfInput

를 지정합니다. BIN 파일 이름에는 고유성을 위해 .mc 파일 이름이 포함되어야 합니다.

%(MessageCompile. UseBaseNameOfInput) -b
UseDecimalValues

헤더 파일의 FACILTY 및 SEVERITY 값을 10진수로 지정합니다. 헤더의 메시지 값을 처음에 10진수로 설정합니다.

%(MessageCompile.UseDecimalValues) -d
ValidateAgainstBaselineResource

true로 설정하면 -t 스위치가 생성됩니다.

%(MessageCompile.ValidateAgainstBaselineResource)
BaselinePath

기준 리소스에 대해 유효성을 검사합니다.

%(MessageCompile.BaselinePath) -t<경로>
Verbose

자세한 정보를 출력하도록 지정합니다.

%(MessageCompile.Verbose) -v
WinmetaPath

winmeta.xml 파일의 경로를 지정합니다.

%(MessageCompile.WinmetaPath) -W<파일>

메시지 컴파일러(MC.exe)