Postupy: Vytváření souborů .h z metadat Windows pomocí nástrojů winmdidl.exe a midlrt.exe

Winmdidl.exe a midlrt.exe umožňují interakci na úrovni modelu COM mezi nativním kódem C++ a komponentami prostředí Windows Runtime. Winmdidl.exe přebírá jako vstup soubor .winmd, který obsahuje metadata pro komponentu prostředí Windows Runtime a výstupem souboru IDL. Midlrt.exe převede tento soubor IDL na hlavičkové soubory, které může kód C++ využívat. Oba nástroje běží na příkazovém řádku.

Tyto nástroje používáte ve dvou hlavních scénářích:

  • Vytváření vlastních souborů IDL a hlaviček tak, aby aplikace C++ napsaná pomocí knihovny šablon prostředí Windows Runtime (WRL) mohl využívat vlastní komponentu prostředí Windows Runtime.

  • Generování souborů proxy a zástupných procedur pro uživatelem definované typy událostí v komponentě prostředí Windows Runtime. Další informace naleznete v tématu Vlastní události a přístupové objekty událostí v prostředí Windows Runtime Součásti.

Tyto nástroje jsou vyžadovány pouze pro analýzu vlastních souborů .winmd. Soubory .idl a .h pro součásti operačního systému Windows jsou již generovány za vás. Ve výchozím nastavení se ve Windows 8.1 nacházejí ve složce \Program Files (x86)\Windows Kits\8.1\Include\winrt\.

Umístění nástrojů

Ve výchozím nastavení jsou ve složce [Windows 8.1, winmdidl.exe a midlrt.exe umístěny ve složce C:\Program Files (x86)\Windows Kits\8.1\. Verze nástrojů jsou k dispozici také ve složkách \bin\x86\ a \bin\x64\.

Argumenty příkazového řádku Winmdidl

Winmdidl.exe [/nologo] [/suppressversioncheck] [/time] [/outdir:dir] [/banner:file] [/utf8] Winmdfile

/nologo
Zabrání zobrazení konzoly zprávy o autorských právech winmdidl a čísla verze.

/suppressversioncheck
Nepoužívá se.

/Čas
Zobrazí celkovou dobu provádění ve výstupu konzoly.

/outdir:dir
Určuje výstupní adresář. Pokud cesta obsahuje mezery, použijte uvozovky. Výchozí výstupní adresář je <jednotka>:\Users\<username>\AppData\Local\VirtualStore\Program Files (x86)\Microsoft Visual Studio 12.0\.

/banner:file
Určuje soubor, který obsahuje vlastní text pro předpřipravení výchozí zprávy o autorských právech a číslo verze winmdidl v horní části vygenerovaného souboru .idl. Pokud cesta obsahuje mezery, použijte uvozovky.

/utf8
Způsobí, že soubor bude formátován jako UTF-8.

Winmdfile
Název souboru .winmd, který chcete analyzovat. Pokud cesta obsahuje mezery, použijte uvozovky.

Argumenty příkazového řádku Midlrt

Viz komponenty MIDLRT a prostředí Windows Runtime.

Příklady

Následující příklad ukazuje příkaz winmdidl na příkazovém řádku sady Visual Studio x86. Určuje výstupní adresář a soubor, který obsahuje speciální bannerový text, který se má přidat do vygenerovaného souboru .idl.

C:\Program Files (x86)\Microsoft Visual Studio 12.0>winmdidl /nologo /outdir:c:\users\giraffe\documents\ /banner:c:\users\giraffe\documents\banner.txt "C:\Users\giraffe\Documents\Visual Studio 2013\Projects\Test_for_winmdidl\Debug\Test_for_winmdidl\test_for_winmdidl.winmd"

Následující příklad ukazuje zobrazení konzoly z winmdidl, které indikuje, že operace byla úspěšná.

Generování c:\users\giraffe\documents\\Test_for_winmdidl.idl

Dále se midlrt spustí na vygenerovaném souboru IDL. Všimněte si, že za názvem souboru .idl je zadaný argument metadata_dir . Je vyžadována cesta \WinMetadata\ – je to umístění pro windows.winmd.

C:\Program Files (x86)\Microsoft Visual Studio 12.0> midlrt "c:\users\username\documents\test_for_winmdidl.idl" /metadata_dir "C:\Windows\System32\WinMetadata"

Poznámky

Výstupní soubor z operace winmdidl má stejný název jako vstupní soubor, ale má příponu názvu souboru .idl.

Pokud vyvíjíte prostředí Windows Runtime komponentu, ke které se bude přistupovat z knihovny WRL, můžete určit winmdidl.exe a midlrt.exe, které se mají spustit jako kroky po sestavení, aby se soubory .idl a .h vygenerovaly v každém sestavení. Příklad najdete v tématu Vyvolávání událostí v komponentách prostředí Windows Runtime.