Commutateur /backward_compat

Le commutateur /backward_compat indique au compilateur MIDL de désactiver certaines fonctionnalités avancées lors de la génération de stubs RPC/COM.

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

Options de basculement

maybenull_sizeis

Applique l’attribut [disable_consistency_check] à une compilation MIDL entière.

zeroout_alignmentgap

Désactive la mise à zéro des espaces dans la mémoire tampon marshalée.

BSTR_byvalue_escaping

Indique au compilateur MIDL d’honorer les séquences d’échappement telles que †̃\n†™ ou †̃\t†™ dans les BSTR.

string_defaultvalue

Force le compilateur MIDL à forcer les chaînes dans les attributs [defaultvalue] dans VARIANT. VT_I4 type avant de contraindre la valeur dans le type correct.

signed_wchar_t

Indique à MIDL de traiter le type de wchar_t comme signé à des fins de compatibilité avec Visual Basic.

Notes

  • maybenull_sizeis : Voir [disable_consistency_check].

  • zeroout_alignmentgap : lorsque les IDL sont compilés avec la cible NT60 ou ultérieure, MIDL crée des stubs qui suppriment les écarts d’alignement entre les membres ou une structure dans la mémoire tampon de câble. Le commutateur de ligne de commande /backward_compat zeroout_alignmentgap indique à MIDL de désactiver cette fonctionnalité.

    Dans l’exemple de structure suivant, la mémoire tampon de câble contient un écart d’alignement de 7 octets pour aligner le membre hyper sur 8 après le membre char. Avec la cible NT60 ou supérieure, MIDL supprime cet écart, sauf si le commutateur est utilisé.

    Fichier IDL :

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

    Ce commutateur peut apporter une légère amélioration des performances avec des augmentations potentiellement significatives du risque de divulgation.

  • BSTR_byvalue_escaping : par défaut, le compilateur MIDL ne traite pas les séquences d’échappement telles que †̃\n†™ ou †̃\t†™ dans les constantes de chaîne pour OLE Automation lors de la conversion d’une constante de chaîne en types VT_LPSTR ou VT_LPWSTR. Avec cette option de commutateur de compatibilité descendante, les séquences d’échappement sont évaluées.

  • string_defaultvalue : force le compilateur MIDL à forcer les chaînes numériques dans les attributs [defaultvalue] dans VARIANT. VT_I4 type avant de contraindre la valeur dans le type correct. Cela peut entraîner une perte de précision dans certains cas. Cette option de commutateur n’est donc pas recommandée.

  • signed_wchar_t : indique à MIDL de traiter le type de wchar_t comme signé à des fins de compatibilité avec Visual Basic.