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>
関連項目
.NET