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 Pengalihan

maybenull_sizeis

Menerapkan atribut [disable_consistency_check] ke seluruh kompilasi MIDL.

zeroout_alignmentgap

Mematikan celah nol keluar di buffer marshaled.

BSTR_byvalue_escaping

Mengarahkan compiler MIDL untuk menghormati urutan escape seperti †̃\nâ € ™ atau â € ̃ \ tâ € ™ di BSTR.

string_defaultvalue

Memaksa pengkompilasi MIDL untuk memaksa string dalam atribut[defaultvalue] ke dalam 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.

Komentar

  • maybenull_sizeis: Lihat [disable_consistency_check].

  • zeroout_alignmentgap: Ketika IDL dikompilasi dengan target NT60 atau lebih tinggi, MIDL akan membuat stub yang tidak mengeluarkan celah penyelarasan antara anggota atau struktur di buffer kawat. Sakelar baris perintah /backward_compat zeroout_alignmentgap mengarahkan MIDL untuk menonaktifkan fitur ini.

    Dalam struktur contoh berikut, buffer kawat berisi celah perataan 7 byte untuk menyelaraskan anggota hyper ke 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 peningkatan risiko pengungkapan yang berpotensi signifikan.

  • BSTR_byvalue_escaping: Secara default, pengompilasi MIDL tidak memproses urutan escape seperti †̃\n†™ atau € ̃\t†™ dalam konstanta string untuk OLE Automation 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 pengalihan ini tidak disarankan.

  • signed_wchar_t: Mengarahkan MIDL untuk memperlakukan jenis wchar_t seperti yang ditandatangani untuk kompatibilitas dengan Visual Basic.