Bagikan melalui


/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.