次の方法で共有


invalidVariant MDA

Note

この記事は .NET Framework に固有のものです。 .NET 6 以降のバージョンを含む、.NET の新しい実装には適用されません。

invalidVariant マネージド デバッグ アシスタント (MDA: Managed Debugging Assistant) は、ネイティブ コードまたはアンマネージド コードからマネージド コードへの呼び出し時に、無効な VARIANT 構造体が見つかるとアクティブ化されます。

現象

VARIANT からオブジェクトへのマーシャリングを含む、ネイティブ コードとマネージド コードの間の遷移中に、予期しない動作が発生します。

原因

ネイティブ コードが、不適切な VARIANT 構造体をマネージド コードに渡しています。 ランタイムは、この VARIANT をオブジェクトにマーシャリングしようとし、VARIANT が有効でない場合に MDA がアクティブ化されます。 無効な VARIANT には、VARTYPE VT_EMPTY | VT_BYREF の VARIANT や、VARTYPE VT_VARIANT の VARIANT などがあります。

解決方法

VARIANT を渡すネイティブ コードまたはアンマネージ コードでは、VARIANT の形式と初期化が正しいことを確認する必要があります。

ランタイムへの影響

この MDA は、ランタイムの動作への影響はありません。

出力

無効な VARIANT がアンマネージド モジュールによりマネージド コードに渡されたことを、ランタイムが検出したことを示す MDA メッセージです。

構成

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

関連項目