Teilen über


Vorgehensweise: Verwenden von „winmdidl.exe“ und „midlrt.exe“ zum Erstellen von H-Dateien aus Windows-Metadaten

"Winmdidl.exe" und "midlrt.exe" aktivieren Interaktionen auf COM-Ebene zwischen systemeigenem C++-Code und Komponenten für Windows-Runtime. "Winmdidl.exe" verwendet als Eingabe eine WINMD-Datei, die Metadaten für eine Komponente für Windows-Runtime enthält, und gibt eine IDL-Datei aus. "Midlrt.exe" konvertiert diese IDL-Datei in Headerdateien, die der C++-Code verarbeiten kann. Beide Tools werden an der Befehlszeile ausgeführt.

Sie verwenden diese Tools in zwei Hauptszenarien:

  • Erstellen von benutzerdefinierten IDL-Dateien und Headerdateien, sodass eine C++-App, die mithilfe der Vorlagenbibliothek für Windows-Runtime geschrieben wurde, eine benutzerdefinierte Komponente für Windows-Runtime verarbeiten kann

  • Generieren von Proxy- und Stub-Dateien für benutzerdefinierte Ereignistypen in einer Komponente für Windows-Runtime Weitere Informationen finden Sie unter Benutzerdefinierte Ereignisse und Ereignisaccessoren in Windows-Runtime Komponenten.

Diese Tools sind nur für das Analysieren von benutzerdefinierten WINMD-Dateien erforderlich. Die IDL- und H-Dateien für Komponenten des Windows-Betriebssystems sind bereits für Sie generiert. Standardmäßig befinden sie sich in Windows 8.1 unter \Programme (x86)\Windows Kits\8.1\Include\winrt\.

Speicherort der Tools

Standardmäßig befinden sich in [Windows 8.1, winmdidl.exe und midlrt.exe in C:\Program Files (x86)\Windows Kits\8.1\. Versionen der Tools sind auch in den Ordnern "\bin\x86\" und "\bin\x64\" verfügbar.

Winmdidl-Befehlszeilenargumente

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

/nologo
Verhindert die Anzeige der winmdidl-Copyrightmeldung und -Versionsnummer auf der Konsole.

/suppressversioncheck
Nicht verwendet.

/Zeit
Zeigt die gesamte Ausführungszeit in der Konsolenausgabe an.

/outdir:dir
Gibt ein Ausgabeverzeichnis an. Wenn der Pfad Leerzeichen enthält, verwenden Sie Anführungszeichen. Das Standardausgabeverzeichnis ist <Laufwerk>:\Benutzer\<Benutzername>\AppData\Local\VirtualStore\Programme (x86)\Microsoft Visual Studio 12.0\.

/banner:file
Gibt eine Datei an, die benutzerdefinierten Text enthält, der am Anfang der generierten IDL-Datei der standardmäßigen Copyrightmeldung und winmdidl-Versionsnummer vorangestellt wird. Wenn der Pfad Leerzeichen enthält, verwenden Sie Anführungszeichen.

/utf8
Bewirkt, dass die Datei als UTF-8 formatiert wird.

Winmdfile
Der Dateiname der zu analysierenden WINMD-Datei. Wenn der Pfad Leerzeichen enthält, verwenden Sie Anführungszeichen.

Midlrt-Befehlszeilenargumente

Siehe MIDLRT- und Windows-Runtime-Komponenten.

Beispiele

Das folgende Beispiel zeigt einen winmdidl-Befehl an einer Visual Studio-x86-Eingabeaufforderung. Es wird ein Ausgabeverzeichnis und eine Datei angegeben, die speziellen Bannertext enthält, der der generierten IDL-Datei hinzugefügt wird.

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"

Im folgenden Beispiel wird die Konsolenanzeige von "winmdidl" gezeigt, die angibt, dass der Vorgang erfolgreich war.

Generieren von c:\users\giraffe\documents\\Test_for_winmdidl.idl

Anschließend wird "midlrt" auf der generierten IDL-Datei ausgeführt. Beachten Sie, dass das argument metadata_dir nach dem Namen der IDL-Datei angegeben wird. Der Pfad von "\WinMetadata\" ist erforderlich – es ist der Speicherort für "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"

Hinweise

Die Ausgabedatei eines winmdidl-Vorgangs weist denselben Namen wie die Eingabedatei auf, hat aber die Dateierweiterung IDL.

Wenn Sie eine Komponente für Windows-Runtime entwickeln, auf die von WRL zugegriffen wird, können Sie "winmdidl.exe" und "midlrt.exe" angeben, um als Postbuildschritte ausgeführt zu werden, sodass die IDL- und H-Dateien für jedes Build erzeugt werden. Ein Beispiel finden Sie unter Auslösen von Ereignissen in Windows-Runtime Komponenten.