Поделиться через


Помощник по отладке управляемого кода invalidVariant

Примечание.

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

Помощник по отладке управляемого кода (MDA) invalidVariant активируется, когда во время вызова из машинного или неуправляемого кода обнаруживается недопустимая структура 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>

См. также