InvalidVariant MDA

Note

Эта статья относится к .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.

Помощник invalidVariant по управляемой отладке (MDA) активируется при обнаружении недопустимой VARIANT структуры во время вызова из собственного или неуправляемого кода в управляемый код.

Симптомы

Непредвиденное поведение во время перехода между машинным и управляемым кодом, связанным с маршалингом VARIANT объекта.

Причина

Машинный код передает неправильно сформированную VARIANT структуру в управляемый код. Среда выполнения пытается маршалировать этот VARIANT объект и активирует MDA, если он VARIANT недействителен. Примеры недопустимых VARIANTS включают a VARIANT с VARTYPE VT_EMPTY | VT_BYREF или VARIANT VT_VARIANT VARTYPE .

Разрешение

Собственный или неуправляемый код, передавающий VARIANT этот код, должен убедиться, что VARIANT он правильно сформирован и инициализирован.

Влияние на среду выполнения

MDA не влияет на поведение среды выполнения.

Выходные данные

Сообщение MDA, указывающее, что среда выполнения обнаружила недопустимую VARIANT переданную управляемому коду неуправляемым модулем.

Конфигурация

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

См. также