Kompilátor zpráv (MC.exe)
Kompilátor zpráv (mc.exe) slouží ke kompilaci manifestů instrumentace a textových souborů zpráv. Kompilátor vygeneruje soubory prostředků zprávy, na které vaše aplikace odkazuje.
MC [-?aAbcdnouUv] [-m <length>] [-h <path>] [-e <extension>] [-r <path>]
[-x <path>] [-w <file>] [-W <file>] [-z <basename> ] [-cp <encoding>]
[-km | -um | -generateProjections | -cs <namespace>]
[-mof] [-p <prefix>] [-P <prefix>]
[<filename.man>] [<filename.mc>]
Poznámka
Kompilátor zpráv se dodává se sadou Windows SDK a nachází se ve složce \Bin.
Argumenty společné pro textové soubory zpráv i soubory manifestu
-
-?
-
Zobrazí informace o využití kompilátoru zpráv.
-
-c
-
Tento argument použijte k nastavení bitu zákazníka (bit 28) kompilátoru ve všech ID zpráv. Informace o bitu zákazníka najdete v tématu winerror.h.
-
-cpkódování
-
Tento argument použijte k určení kódování znaků, které se používá pro všechny vygenerované textové soubory. Platné názvy zahrnují "ansi" (výchozí), "utf-8" a "utf-16". Kódování Unicode přidá značku pořadí bajtů.
-
-erozšíření
-
Tento argument použijte k určení přípony, která se má použít pro soubor záhlaví. Můžete zadat až tři znaky přípony, nikoli tečku. Výchozí hodnota je .h.
-
-hcesta
-
Tento argument použijte k určení složky, do které má kompilátor umístit vygenerovaný soubor hlaviček. Výchozí hodnota je aktuální adresář.
-
-mdélka
-
Tento argument použijte k vygenerování upozornění kompilátoru, pokud jakákoli zpráva překročí délku znaků.
-
-rcesta
-
Tento argument použijte k určení složky, do které má kompilátor umístit vygenerovaný skript kompilátoru prostředků (soubor .rc) a vygenerované soubory .bin (binární prostředky), které obsahuje skript kompilátoru prostředků. Výchozí hodnota je aktuální adresář.
-
-znázev
-
Tento argument použijte k přepsání výchozího základního názvu, který kompilátor používá pro soubory, které generuje. Výchozí hodnota je použití základního názvu souboru vstupního souboru.
-
název souboru
-
Soubor manifestu instrumentace nebo textový soubor zprávy. Soubor musí existovat v aktuálním adresáři. Můžete zadat soubor manifestu, textový soubor zprávy nebo obojí. Název souboru musí obsahovat příponu. Konvence spočívá v použití přípony .man pro soubory manifestu a přípony .mc pro textové soubory zpráv.
Argumenty specifické pro soubory manifestu
-
cesty
- s -
Tento argument použijte k vytvoření směrného plánu instrumentace. Zadejte cestu ke složce, která obsahuje soubory manifestu směrného plánu. V dalších verzích byste pak použili argument -t ke kontrole nového manifestu podle směrného plánu problémů s kompatibilitou.
Před mc verze 1.12.7051: Není k dispozici
-
cesty
-t -
Tento argument použijte při vytváření nové verze manifestu a chcete zkontrolovat kompatibilitu aplikace s výchozími hodnotami, které jste vytvořili pomocí argumentu -s. Cesta musí odkazovat na složku, která obsahuje složku . Soubory BIN, které vytvořila operace směrného plánu (viz přepínač
-s). Před mc verze 1.12.7051: Není k dispozici
-
-wcesta
-
Kompilátor tento argument ignoruje a automaticky ověří manifest.
Před verzí 1.12.7051: Pomocí tohoto argumentu určete složku obsahující soubor schématu Eventman.xsd, který kompilátor používá k ověření manifestu. Sada Windows SDK obsahuje soubor schématu Eventman.xsd do složky \Include. Pokud tento argument nezadáte, kompilátor neověří váš manifest.
-
-Wcesta
-
Kompilátor tento argument ignoruje.
Před verzí 1.12.7051: Tento argument použijte k určení složky, která obsahuje soubor Winmeta.xml. Soubor Winmeta.xml obsahuje rozpoznané vstupní a výstupní typy a také předdefinované kanály, úrovně a opcode. Sada Windows SDK obsahuje soubor Winmeta.xml ve složce \Include.
Argumenty specifické pro generování kódu, který by váš poskytovatel použil k protokolování událostí
Následující argumenty kompilátoru můžete použít ke generování kódu režimu jádra nebo uživatelského režimu, který můžete použít k protokolování událostí. Můžete také požádat, aby kompilátor vygeneroval kód pro podporu zápisu událostí na počítačích před systémem Windows Vista. Pokud je vaše aplikace napsaná v jazyce C#, kompilátor může vygenerovat třídu jazyka C#, kterou můžete použít k protokolování událostí. Tyto argumenty jsou k dispozici od MC verze 1.12.7051, která je dodávána s Windows 7 verze sady Windows SDK.
-
-co
-
Tento argument použijte, pokud chcete, aby služba protokolování volala funkci definovanou uživatelem pro každou událost, kterou protokolujete (funkce se volá po zaprotokolování události). Uživatelem definovaná funkce musí mít následující podpis.
VOID pFnUserFunction( __in REGHANDLE RegHandle, __in PCEVENT_DESCRIPTOR Descriptor, __in ULONG EventDataCount, __in_ecount(EventDataCount) PEVENT_DATA_DESCRIPTOR EventData );
Do kódu musíte zahrnout také následující direktivu.
#define MCGEN_CALLOUT pFnUserFunction
Měli byste zachovat co nejkratší implementaci, abyste zabránili problémům s protokolováním; služba již nebude protokolovat vaše události, dokud funkce nevrátí.
Tento argument můžete použít s argumentem -km nebo -um.
-
oboru názvů
-cs -
Tento argument použijte, pokud chcete, aby kompilátor vygeneroval třídu C# založenou na .NET 3.5 EventProvider třídy.
-
-cssobor názvů
-
Tento argument použijte k vygenerování statické třídy jazyka C# založené na .NET 3.5 EventProvider třídy.
-
-km
-
Tento argument použijte, pokud chcete, aby kompilátor vygeneroval kód režimu jádra, který byste použili k protokolování událostí definovaných v manifestu.
-
-mof
-
ZAVRHOVANÝ. Tento argument použijte k vygenerování kódu kompilátoru, který můžete použít k protokolování událostí v počítačích před systémem Windows Vista. Tato možnost také vytvoří soubor MOF, který obsahuje třídy MOF pro každou událost definovanou v manifestu. Chcete-li zaregistrovat třídy v souboru MOF, aby uživatelé mohli dekódovat události, použijte kompilátor MOF (Mofcomp.exe). Podrobnosti o použití kompilátoru MOF najdete v formátu spravovaného objektu.
Chcete-li použít tento přepínač, musíte dodržovat následující omezení:
- Každá definice události musí obsahovat atributy úlohy a opcode.
- Každý úkol musí obsahovat atribut eventGuid.
- Data šablony, která odkazy na události nemohou obsahovat:
- Datové položky, které určují vstupní typy win:Binary nebo win:SYSTEMTIME
- Struktury
- Pole s proměnlivou velikostí; můžete však zadat pole s pevnou délkou.
- Datové typy řetězců nemohou zadat atribut délky.
Tento argument je nutné použít s argumentem -um, -cs, -cssnebo -km argumentem
-
-ppředpona
-
Tento argument použijte k přepsání výchozí předpony, kterou kompilátor používá pro názvy a názvy metod protokolování maker. Výchozí předpona je EventWrite. V řetězci se rozlišují malá a velká písmena.
Tento argument můžete použít s argumentem -um, -cs, -cssnebo -km argumentu.
-
předpona -P
-
Tento argument slouží k odebrání znaků od začátku symbolického názvu, který jste zadali pro událost. Porovnání nerozlišuje malá a velká písmena. Kompilátor používá symbolický název k vytvoření názvů a názvů metod protokolování.
Výchozí název makra protokolování je EventWriteSymbolName, kde SymbolName je symbolický název, který jste zadali pro událost. Pokud například nastavíte atribut symbolu události na PrinterConnection, název makra bude EventWritePrinterConnection. Chcete-li odebrat tiskárnu z názvu, použijte -PTiskárny, což má za následek EventWriteConnection.
Tento argument můžete použít s argumentem -um, -cs, -cssnebo -km argumentu.
-
-um
-
Tento argument použijte k vygenerování kódu uživatelského režimu kompilátoru, který byste použili k protokolování událostí definovaných v manifestu.
Pokud chcete, aby kompilátor generoval kód protokolování, musíte zadat -um, -cs, -cssnebo -km argument; tyto argumenty se vzájemně vylučují.
K určení umístění souborů .h, .cs a .mof, které kompilátor generuje, použijte argument -h. Pokud nezadáte argument -h, soubory se umístí do aktuální složky.
Chcete-li určit, kam umístit soubor .rc a binární soubory (obsahující prostředky metadat), které kompilátor generuje, použijte argument -r. Pokud nezadáte argument -r, soubory se umístí do aktuální složky.
Kompilátor používá základní název vstupního souboru jako základní název souborů, které generuje. Chcete-li zadat základní název, použijte argument -z.
Argumenty specifické pro textové soubory zpráv
-
-a
-
Tento argument použijte k určení, že název souboru vstupní soubor obsahuje obsah na výchozí znakové stránce systému Windows ANSI (CP_ACP). Toto je výchozí hodnota. Pro Unicode použijte -u. Pokud vstupní soubor obsahuje kusovník, bude tento argument ignorován.
-
-A
-
ZAVRHOVANÝ. Tento argument použijte k určení, že zprávy ve výstupním .bin souboru by měly být ANSI.
-
-b
-
Tento argument použijte, pokud chcete, aby kompilátor používal základní název názvu souboru vstupní soubor pro názvy .bin souborů. Výchozí hodnota je použití msG.
-
-d
-
Tento argument použijte k použití desetinných hodnot pro konstanty Severity a Facility v souboru záhlaví místo šestnáctkových hodnot.
-
-n
-
Pomocí tohoto argumentu můžete určit, že se zprávy ukončí okamžitě po textu zprávy. Výchozí hodnotou je ukončení textu zprávy cr/LF.
-
-o
-
Tento argument použijte, pokud chcete, aby kompilátor vygeneroval soubor hlaviček OLE2 pomocí HRESULT definice místo stavových kódů. Použití stavových kódů je výchozí.
-
-u
-
Tento argument použijte k určení, že název souboru vstupní soubor obsahuje obsah UTF-16LE. Výchozí hodnota je obsah ANSI. Pokud vstupní soubor obsahuje kusovník, bude tento argument ignorován.
-
-U
-
Tento argument použijte k určení, že zprávy ve výstupním .bin souboru by měly být Unicode. Toto je výchozí hodnota.
-
-v
-
Tento argument použijte ke generování podrobného výstupu.
-
cesty
-x -
Tento argument použijte k určení složky, do které má kompilátor umístit soubor zahrnutí .dbg C. Soubor .dbg mapuje ID zpráv na jejich symbolické názvy.
Poznámky
Argumenty -A a -mof jsou zastaralé a v budoucnu se odeberou.
Kompilátor přijímá jako vstupní soubor manifestu (.man) nebo textový soubor zprávy (.mc) a generuje následující soubory:
název souboru.h
Soubor hlaviček C/C++, který obsahuje popisovače událostí, identifikátor GUID zprostředkovatele a názvy symbolů, na které odkazujete ve své aplikaci.
název souboruTEMP.bin
Binární soubor prostředků, který obsahuje zprostředkovatele a metadata událostí. Toto je prostředek šablony, který je označen příponou TEMP základního názvu souboru.
Msg00001.bin
Binární soubor prostředků pro každý zadaný jazyk (například pokud manifest obsahuje řetězce zpráv v en-US a fr-FR, kompilátor by vygeneroval Msg00001.bin a Msg00002.bin).
název souboru.rc
Skript kompilátoru prostředků, který obsahuje příkazy, které zahrnou každý .bin soubor jako prostředek.
Pro argumenty, které berou cestu, může být cesta absolutní, relativní nebo cesta UNC a může obsahovat proměnné prostředí.
Před mc verze 1.12.7051: Kompilátor nepovoluje relativní cesty nebo proměnné prostředí.
Příklady
Následující příklad zkompiluje manifest pomocí výchozích hodnot kompilátoru.
mc spooler.man
Následující příklad zkompiluje manifest a umístí hlavičku a soubory prostředků do zadaných složek.
mc -h <pathgoeshere> -r <pathgoeshere> spooler.man
Požadavky
Požadavek | Hodnota |
---|---|
Minimální podporovaný klient | Windows 2000 Professional [jenom desktopové aplikace] |
Minimální podporovaný server | Windows 2000 Server [jenom desktopové aplikace] |