Bagikan melalui


Cara: Menggunakan winmdidl.exe dan midlrt.exe untuk membuat file .h dari metadata windows

Winmdidl.exe dan midlrt.exe memungkinkan interaksi tingkat COM antara kode C++ asli dan komponen Windows Runtime. Winmdidl.exe mengambil sebagai input file .winmd yang berisi metadata untuk komponen Windows Runtime dan menghasilkan file IDL. Midlrt.exe mengonversi file IDL tersebut menjadi file header yang dapat digunakan kode C++. Kedua alat berjalan pada baris perintah.

Anda menggunakan alat-alat ini dalam dua skenario utama:

  • Membuat file IDL dan header kustom sehingga aplikasi C++ yang ditulis dengan menggunakan Windows Runtime Template Library (WRL) dapat menggunakan komponen Windows Runtime kustom.

  • Membuat file proksi dan stub untuk jenis peristiwa yang ditentukan pengguna di Komponen Runtime Windows. Untuk informasi selengkapnya, lihat Peristiwa kustom dan pengaktif peristiwa di Komponen Runtime Windows.

Alat-alat ini hanya diperlukan untuk mengurai file .winmd kustom. File .idl dan .h untuk komponen sistem operasi Windows sudah dibuat untuk Anda. Secara default di Windows 8.1, file tersebut terletak di \Program Files (x86)\Windows Kits\8.1\Include\winrt\.

Lokasi alat

Secara default di [Windows 8.1, winmdidl.exe dan midlrt.exe terletak di C:\Program Files (x86)\Windows Kits\8.1\. Versi alat juga tersedia di folder \bin\x86\ dan \bin\x64\.

Argumen baris perintah Winmdidl

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

/nologo
Mencegah tampilan konsol dari pesan hak cipta winmdidl dan nomor versi.

/suppressversioncheck
Tidak digunakan.

/Waktu
Menampilkan total waktu eksekusi dalam output konsol.

/outdir:dir
Menentukan direktori output. Jika jalur berisi spasi, gunakan tanda kutip. Direktori output default adalah <drive>:\Users\<username>\AppData\Local\VirtualStore\Program Files (x86)\Microsoft Visual Studio 12.0\.

/banner:file
Menentukan file yang berisi teks kustom untuk ditambahkan ke pesan hak cipta default dan nomor versi winmdidl di bagian atas file .idl yang dihasilkan. Jika jalur berisi spasi, gunakan tanda kutip.

/utf8
Menyebabkan file diformat sebagai UTF-8.

Winmdfile
Nama file .winmd yang akan diurai. Jika jalur berisi spasi, gunakan tanda kutip.

Argumen baris perintah Midlrt

Lihat komponen MIDLRT dan Windows Runtime.

Contoh

Contoh berikut menunjukkan perintah winmdidl di prompt perintah Visual Studio x86. Ini menentukan direktori output, dan file yang berisi teks banner khusus untuk ditambahkan ke file .idl yang dihasilkan.

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"

Contoh berikutnya menunjukkan tampilan konsol dari winmdidl yang menunjukkan bahwa operasi berhasil.

Menghasilkan c:\users\giraffe\documents\\Test_for_winmdidl.idl

Selanjutnya, midlrt dijalankan pada file IDL yang dihasilkan. Perhatikan bahwa argumen metadata_dir ditentukan setelah nama file .idl. Jalur \WinMetadata\ diperlukan—ini adalah lokasi untuk 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"

Keterangan

File output dari operasi winmdidl memiliki nama yang sama dengan file input tetapi memiliki ekstensi nama file .idl.

Jika Anda mengembangkan komponen Windows Runtime yang akan diakses dari WRL, Anda dapat menentukan winmdidl.exe dan midlrt.exe untuk dijalankan sebagai langkah-langkah pasca-build sehingga file .idl dan .h dihasilkan pada setiap build. Misalnya, lihat Meningkatkan Peristiwa di Komponen Runtime Windows.