Opzione /backward_compat

L'opzione /backward_compat indirizza il compilatore MIDL a disattivare alcune funzionalità avanzate durante la generazione di stub RPC/COM.

midl /backward_compat { maybenull_sizeis | zeroout_alignmentgap | 
     BSTR_byvalue_escaping | string_defaultvalue | signed_wchar_t }

Opzioni switch

maybenull_sizeis

Applica l'attributo [disable_consistency_check] a un'intera compilazione MIDL.

zeroout_alignmentgap

Disattiva lo zeroing out gap nel buffer sottoposto a marshalling.

BSTR_byvalue_escaping

Indica al compilatore MIDL di rispettare le sequenze di escape, ad esempio †̃\n†™ o ̃\t†™ in richieste pull.

string_defaultvalue

Forza il compilatore MIDL a forzare le stringhe negli attributi [defaultvalue] in VARIANT. VT_I4 tipo prima di forzare il valore nel tipo corretto.

signed_wchar_t

Indica a MIDL di considerare il tipo di wchar_t come firmato per la compatibilità con Visual Basic.

Commenti

  • maybenull_sizeis: vedere [disable_consistency_check].

  • zeroout_alignmentgap: quando gli IDL vengono compilati con â€"target NT60 o versione successiva, MIDL creerà stub che azzeranno eventuali gap di allineamento tra i membri o una struttura nel buffer di collegamento. L'opzione della riga di comando /backward_compat zeroout_alignmentgap indirizza MIDL per disabilitare questa funzionalità.

    Nella struttura di esempio seguente, il buffer di collegamento contiene una distanza di allineamento di 7 byte per allineare il membro hyper a 8 dopo il membro char. Con â€"target NT60 o versione successiva, MIDL esce da tale gap a meno che non venga usato il commutatore.

    File IDL:

    typedef struct _structwithgaps{
        char c;
        // 7 byte gap to align the following hyper to 8 
        hyper h;
    } structwithgap;
    

    Questa opzione può offrire un lieve miglioramento delle prestazioni con un aumento potenzialmente significativo del rischio di divulgazione.

  • BSTR_byvalue_escaping: per impostazione predefinita, il compilatore MIDL non elabora sequenze di escape, ad esempio ̃\n†™ o ̃\t†™ nelle costanti stringa per l'automazione OLE durante la conversione di una costante stringa in tipi VT_LPSTR o VT_LPWSTR. Con questa opzione di compatibilità con le versioni precedenti, le sequenze di escape vengono valutate.

  • string_defaultvalue: forza il compilatore MIDL a coercire le stringhe numeriche negli attributi [defaultvalue] in VARIANT. VT_I4 tipo prima di forzare il valore nel tipo corretto. Ciò può causare una perdita di precisione in alcuni casi, quindi questa opzione di opzione non è consigliata.

  • signed_wchar_t: indica a MIDL di considerare il tipo di wchar_t come firmato per garantire la compatibilità con Visual Basic.