共用方式為


invalidVariant MDA

注意

本文專屬於 .NET Framework。 它不適用於較新的 .NET 實作,包括 .NET 6 和更新版本。

當從機器碼或 Unmanaged 程式碼呼叫至 Managed 程式碼時遇到無效的 VARIANT 結構,就會啟動 invalidVariant Managed 偵錯助理 (MDA)。

徵兆

在原生程式代碼與 Managed 程式代碼之間轉換時,發生非預期的行為,涉及將 封送處理 VARIANT 至 物件。

原因

機器碼傳遞格式不正確的 VARIANT 結構給 Managed 程式碼。 如果 VARIANT 無效,則執行階段嘗試封送處理 VARIANT 給物件,並啟動 MDA。 無效 VARIANTS 的範例包含 VARIANT 具有 VARTYPE VT_EMPTY 的 |VT_BYREF或 VARIANT 具有 VARTYPE VT_VARIANT 的 。

解決方法

傳遞 VARIANT 的機器碼或 Unmanaged 程式碼必須確保 VARIANT 格式正確且已初始化。

對執行階段的影響

此 MDA 對執行階段行為沒有影響。

輸出

MDA 訊息,指出執行階段偵測到無效的 VARIANT 由 Unmanaged 模組傳遞至 Managed 程式碼。

組態

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

另請參閱