invalidVariant MDA

更新 : 2007 年 11 月

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>

参照

概念

マネージ デバッグ アシスタントによるエラーの診断

相互運用マーシャリングの概要

参照

MarshalAsAttribute

その他の技術情報

相互運用性