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


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

Обновлен: Ноябрь 2007

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

Признаки

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

Причина

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

Решение

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

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

Данный помощник по отладке управляемого кода не оказывает влияния на расширение функциональности среды выполнения.

Результат

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

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

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

См. также

Основные понятия

Диагностика ошибок посредством управляемых помощников по отладке

Общие сведения о маршалинге взаимодействия

Ссылки

MarshalAsAttribute

Другие ресурсы

Взаимодействие