Partilhar via


invalidVariant MDA

The invalidVariant Assistente de depuração gerenciada (MDA) é ativado quando uma inválido VARIANT estrutura é encontrada durante uma telefonar de nativo ou código não gerenciado para código gerenciado.

Sintomas

Um comportamento inesperado durante uma transição entre códigos nativo e gerenciado que envolvem o marshaling de um VARIANT para um objeto.

Causa

Código nativo está passando um malformado VARIANT estrutura para código gerenciado. O tempo de execução tenta realizar realizar marshaling este VARIANT para um objeto e ativa o MDA se a VARIANT inválido. Exemplos de inválido VARIANTS incluem um VARIANT com VARTYPE VT_EMPTY | VT_BYREF ou um VARIANT com VARTYPE VT_VARIANT.

Resolução

Nativo ou não gerenciado código passando o VARIANT deve garantir que o VARIANT for formada e inicializado corretamente.

Efeito sobre o tempo de execução

O MDA não tem efeito sobre o comportamento do tempo de execução.

Saída

Uma mensagem MDA indica que o tempo de execução detectou uma inválido VARIANT passado para código gerenciado por um módulo não gerenciado.

Configuração

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

Consulte também

Conceitos

Diagnosticar erros com assistentes de depuração gerenciadas

Visão geral do empacotamento interop

Referência

MarshalAsAttribute

Outros recursos

Interoperabilidade