Бөлісу құралы:


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

Пакет драйверов 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 Метаданные элементов Переключатель инструментов
Источники

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

@(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) -со
EventmanPath

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

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

Если значение установлено на true, это активирует переключатель -s.

%(MessageCompile.GenerateBaselineResource)
BaselineResourcePath

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

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

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

%(КомпиляцияСообщений.СоздатьКлассЛогированияC#) -cs<пространство имен>
GenerateC#StaticLoggingClass

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

%(MessageCompile.GenerateC#StaticLoggingClass) -css<namespace>
GeneratedFilesBaseName

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

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

Если это установлено в true, это включает переключатель -h.

%(MessageCompile.GeneratedHeaderPath)
HeaderFilePath

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

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

Если это установлено в true, это включает переключатель -r.

%(MessageCompile.GeneratedRcAndMessagesPath)
RCFilePath

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

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

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

%(MessageCompile.GenerateKernelModeLoggingMacros) -км
GenerateMOFFile

Создает поддержку нижнего уровня для всех функций и макросов, созданных. MOF-файл создается из манифеста. MOF-файл помещается в расположение, указанное параметром "-h".

%(MessageCompile.GenerateMOFFile) -mof
GenerateOLE2Header

Создает файл заголовка OLE2. Использует определение HRESULT вместо определения кода состояния.

%(MessageCompile.GenerateOLE2Header) -o
GenerateUserModeLoggingMacros

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

%(MessageCompile. Генерация макросов для пользовательского режима логирования) -um
HeaderExtension

Задает расширение для файла заголовка (1–3 символов).

%(MessageCompile.HeaderExtension) -e<расширение>
MaximumMessageLength

Создает предупреждение, если размер любого сообщения превышает <длину> символов.

%(MessageCompile.MaximumMessageLength) -m<длина>
ПрефиксMacroName

Определяет префикс имени макроса, который применяется к каждому созданному макросу ведения журнала. Значение по умолчанию — EventWrite.

%(MessageCompile PrefixMacroName) Префикс>-p<
RemoveCharsFromSymbolName

Определяет текст в начале каждого имени символа события, который необходимо удалить перед формированием имен макросов. По умолчанию имеет значение NULL.

%(УдалитьСимволыИзИмениСимвола) -P<префикс>
SetCustomerbit

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

%(MessageCompile.SetCustomerbit) -c
ЗавершитьСообщениеНулем

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

%(MessageCompile.TerminateMessageWithNull) -n
ЮникодВходнойФайл

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

%(MessageCompile.ФайлВводаЮникод) -u
UnicodeMessageInBinFile

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

%(MessageCompile.UnicodeMessageInBinFile) -U
UseBaseNameOfInput

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

%(MessageCompile. UseBaseNameOfInput) -b
UseDecimalValues

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

%(MessageCompile.UseDecimalValues) -d
ValidateAgainstBaselineResource

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

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

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

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

Задает подробные выходные данные.

%(СообщениеКомпиляция.Подробно) -v
WinmetaPath

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

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

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