/backward_compat Switch
Sakelar /backward_compat mengarahkan pengkompilasi MIDL untuk menonaktifkan beberapa fitur canggih saat menghasilkan stub RPC/COM.
midl /backward_compat { maybenull_sizeis | zeroout_alignmentgap |
BSTR_byvalue_escaping | string_defaultvalue | signed_wchar_t }
Opsi Sakelar
maybenull_sizeis
- Menerapkan atribut [disable_consistency_check] ke seluruh kompilasi MIDL.
zeroout_alignmentgap
- Mematikan celah nol di buffer marshaled.
BSTR_byvalue_escaping
- Mengarahkan kompilator MIDL untuk menghormati urutan pelarian seperti â € ̃\nâ € ™ atau € ̃ \ tâ € ™ di BSTR.
string_defaultvalue
- Memaksa pengkompilasi MIDL untuk memaksa string dalam atribut [defaultvalue] ke varian. VT_I4 ketik sebelum memaksakan nilai ke dalam jenis yang benar.
signed_wchar_t
- Mengarahkan MIDL untuk memperlakukan jenis wchar_t seperti yang ditandatangani untuk kompatibilitas dengan Visual Basic.
Keterangan
maybenull_sizeis: Lihat [disable_consistency_check].
zeroout_alignmentgap: Ketika IDL dikompilasi dengan target NT60 atau lebih tinggi, MIDL akan membuat rintangan yang tidak mengeluarkan celah perataan antara anggota atau struktur di buffer kawat. Sakelar baris perintah /backward_compat zeroout_alignmentgap mengarahkan MIDL untuk menonaktifkan fitur ini.
Dalam contoh struktur berikut, buffer kawat berisi celah perataan 7 byte untuk menyelaraskan anggota hyper menjadi 8 setelah anggota karakter. Dengan target NT60 atau lebih tinggi, MIDL akan nol keluar celah itu kecuali sakelar digunakan.
File IDL:
typedef struct _structwithgaps{ char c; // 7 byte gap to align the following hyper to 8 hyper h; } structwithgap;
Sakelar ini dapat memberikan sedikit peningkatan performa dengan potensi peningkatan risiko pengungkapan yang signifikan.
BSTR_byvalue_escaping: Secara default, pengompilasi MIDL tidak memproses urutan escape seperti â € ̃\nâ € ™ atau â € ̃ \ tâ € ™ dalam konstanta string untuk Otomatisasi OLE saat mengonversi konstanta string ke jenis VT_LPSTR atau VT_LPWSTR. Dengan opsi sakelar kompatibilitas mundur ini, urutan escape dievaluasi.
string_defaultvalue: Memaksa pengkompilasi MIDL untuk memaksa string numerik dalam atribut [defaultvalue] ke dalam VARIAN. VT_I4 ketik sebelum memaksakan nilai ke dalam jenis yang benar. Ini dapat menyebabkan hilangnya presisi dalam beberapa kasus, sehingga opsi sakelar ini tidak disarankan.
signed_wchar_t: Mengarahkan MIDL untuk memperlakukan jenis wchar_t seperti yang ditandatangani untuk kompatibilitas dengan Visual Basic.