Поделиться через


Задача компилятора сообщений

Комплект драйверов Windows (WDK) предоставляет задачу MessageCompiler, чтобы можно было запустить средство MC.exe при сборке драйвера с помощью MSBuild. Сведения об использовании 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 вызывает mc.exe на a.mc файла с параметром –s, так как для метаданных GenerateBaselineResource задано значение true. Кроме того, MSBuild использует метаданные BaselineResourcePath для указания аргумента для параметра –s.

Параметр задачи MessageCompiler Метаданные элементов Переключатель инструментов
Источники

Необязательный параметр типа string. Указывает имя файла манифеста для компиляции. Указывает имя файла сообщения для компиляции.

@(MessageCompile)

<filename.man>

<filename.mc>

ANSIInputFile

Указывает, что входной файл имеет значение ANSI (по умолчанию).

%(MessageCompile.ANSIInputFile) -a
ANSIMessageInBinFile

Указывает, что сообщения в . BIN-файл должен иметь значение ANSI.

%(MessageCompile.ANSIMessageInBinFile) -A
EnableDebugOutputPath

Если задано значение true, параметр –x включается.

%(MessageCompile.EnableDebugOutputPath)
DebugOutputPath

Указывает папку, в которую компилятор помещает включаемый файл .dbg C. DBG-файл сопоставляет идентификаторы сообщений с их символьными именами.

%(MessageCompile.DebugOutputPath) -x<путь>
EnableCallOutMacro

Добавляет макрос выноски для вызова пользовательского кода во время ведения журнала. Этот параметр недопустим для C# и игнорируется.

%(MessageCompile.EnableCallOutMacro) -Co
EventmanPath

Указывает путь к файлу eventman.xsd.

%(MessageCompile.EventmanPath) -w<файл>
GenerateBaselineResource

Если задано значение true, параметр -s включается.

%(MessageCompile.GenerateBaselineResource)
BaselineResourcePath

Создает двоичный ресурс для каждого поставщика. Создает сводную глобальную MCGenResource.BIN ресурсов.

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

Создает класс ведения журнала C# (управляемый) на основе класса событий FX3.5.

%(MessageCompile.GenerateC#LoggingClass) Пространство>имен -cs<
GenerateC#StaticLoggingClass

Создает статический класс ведения журнала C# (управляемый) на основе класса событий FX3.5.

%(MessageCompile.GenerateC#StaticLoggingClass) Пространствоимен> -css<
GeneratedFilesBaseName

Задает базовое имя созданных файлов. Значение по умолчанию — базовое имя входного файла.

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

Если задано значение true, он включает параметр -h.

%(MessageCompile.GeneratedHeaderPath)
HeaderFilePath

Указывает путь к месту создания включаемого файла C. Значение по умолчанию — ..

%(MessageCompile.HeaderFilePath) Путь> -h<
GeneratedRcAndMessagesPath

Если задано значение true, параметр -r включается.

%(MessageCompile.GeneratedRcAndMessagesPath)
RCFilePath

Указывает путь к файлу-кандидату и файлам ресурсов двоичных сообщений, которые он включает. Значение по умолчанию — ..

%(MessageCompile.RCFilePath) -r<path>
GenerateKernelModeLoggingMacros

Создает макросы ведения журнала в режиме ядра.

%(MessageCompile.GenerateKernelModeLoggingMacros) -Км
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

Задает бит Customer во всех идентификаторах сообщения.

%(MessageCompile.SetCustomerbit) -c
TerminateMessageWithNull

Завершает все строки символами NULL в таблицах сообщений.

%(MessageCompile.TerminateMessageWithNull) -n
ЮникодInputFile

Входной файл — Юникод.

%(MessageCompile.UnicodeInputFile) -u
ЮникодMessageInBinFile

Сообщения в . BIN-файл должен иметь значение Юникод (по умолчанию).

%(MessageCompile.UnicodeMessageInBinFile) -U
UseBaseNameOfInput

Указывает, что объект . Имя файла BIN должно содержать MC-имя файла для уникальности.

%(MessageCompile. UseBaseNameOfInput) -b
UseDecimalValues

Задает значения FACILTY и SEVERITY в файле заголовка в десятичном формате. Изначально задает десятичные значения сообщения в заголовке.

%(MessageCompile.UseDecimalValues) -d
ValidateAgainstBaselineResource

Если задано значение true, то создается параметр -t.

%(MessageCompile.ValidateAgainstBaselineResource)
Базовый путь

Проверяет базовый ресурс.

%(MessageCompile.BaselinePath) -t<путь>
Verbose

Указывает расширенный вывод.

%(MessageCompile.Verbose) -v
WinmetaPath

Указывает путь к файлу winmeta.xml.

%(MessageCompile.WinmetaPath) -W-файл<>

Компилятор сообщений (MC.exe)