Commutateur /backward_compat
Le commutateur /backward_compat dirige le compilateur MIDL pour 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 commutateur
maybenull_sizeis
zeroout_alignmentgap
- Désactive les écarts de zéro dans la mémoire tampon marshalée.
BSTR_byvalue_escaping
- Dirige le compilateur MIDL pour 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 [defaultvalue] attributs dans VARIANT. VT_I4 type avant de coéminer la valeur dans le type correct.
signed_wchar_t
- Dirige MIDL pour traiter le type de wchar_t comme signé pour la compatibilité avec Visual Basic.
Remarques
maybenull_sizeis: voir [disable_consistency_check].
zeroout_alignmentgap: lorsque des IDL sont compilés avec la cible NT60 ou une version 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 dirige MIDL pour 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 ne supprime pas 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 changement 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 [defaultvalue] attributs dans VARIANT. VT_I4 type avant de coéminer 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: dirige MIDL pour traiter le type de wchar_t comme signé pour la compatibilité avec Visual Basic.