Partager via


Assistant Débogage managé invalidVariant

Mise à jour : novembre 2007

L'Assistant Débogage managé (MDA, Managed Debugging Assistant) invalidVariant est activé lorsqu'une structure VARIANT non valide est rencontrée lors d'un appel du code natif ou non managé au code managé.

Symptômes

Comportement imprévisible lors d'une transition entre du code natif et managé impliquant le marshaling d'un VARIANT en objet.

Cause

Le code natif passe une structure VARIANT incorrecte au code managé. Le runtime tente de marshaler ce VARIANT en objet et active le MDA si le VARIANT n'est pas valide. Les VARIANTS non valides incluent, par exemple, un VARIANT avec VARTYPE VT_EMPTY | VT_BYREF ou un VARIANT avec VARTYPE VT_VARIANT.

Résolution

Le code natif ou non managé qui passe le VARIANT doit s'assurer que le VARIANT est correct et bien initialisé.

Effet sur le runtime

Le MDA n'a aucun effet sur le comportement du runtime.

Sortie

Un message du MDA indiquant que le runtime a détecté un VARIANT non valide passé au code managé par un module non managé.

Configuration

<mdaConfig>
  <assistants>
    <invalidVariant />
  </assistants>
</mdaConfig>

Voir aussi

Concepts

Diagnostic d'erreurs avec les Assistants de débogage managés

Vue d'ensemble du marshaling d'interopérabilité

Référence

MarshalAsAttribute

Autres ressources

Interopérabilité