Note
本文專指 .NET 框架。 此規定不適用於較新的 .NET 實作,包括 .NET 6 及更新版本。
invalidVariant當從原生或非受管理程式碼呼叫到受管程式碼時,遇到無效VARIANT結構時,會啟動受管理除錯助理(MDA)。
Symptoms
在原生程式碼與受管理程式碼之間轉換過程中,涉及將 a VARIANT 編組到物件時出現的意外行為。
原因
原生程式碼是將一個錯誤的 VARIANT 結構傳給受管理程式碼。 執行時會嘗試將此 VARIANT 資料編組到物件,若 MDA VARIANT 無效則啟動。 無效 VARIANTS 的例子包括 a VARIANT VT_EMPTY VARTYPE |VT_BYREF或A,VT_VARIANT VARIANTVARTYPE 。
解決方法
通過 的 VARIANT 原生或非管理程式碼必須確保 正確 VARIANT 形成並初始化。
對運行時間的影響
MDA 對執行時的行為沒有影響。
Output
一個 MDA 訊息,表示執行時偵測到由非管理模組傳送給受管理程式碼的無效 VARIANT 程式碼。
Configuration
<mdaConfig>
<assistants>
<invalidVariant />
</assistants>
</mdaConfig>