invalidVariant MDA

注意

本文特定于 .NET Framework。 它不适用于 .NET 的较新版本实现,包括 .NET 6 及更高版本。

在从本机或非托管代码到托管代码的调用期间,如果遇到无效的 VARIANT 结构,将激活 invalidVariant 托管调试助手 (MDA)。

症状

在本机和托管代码之间转换的过程中的意外行为涉及将 VARIANT 封送到对象。

原因

本机代码正在向托管代码传递格式不正确的 VARIANT 结构。 如果 VARIANT 无效,运行时则会尝试向某个对象封送 VARIANT 并激活 MDA。 无效的 VARIANT 包括带有 VARTYPE VT_EMPTY | VT_BYREF 的 VARIANT 或带有 VARTYPE VT_VARIANT 的 VARIANT

解决方法

传递 VARIANT 的本机或非托管代码必须确保 VARIANT 格式正确且已初始化。

对运行时的影响

此 MDA 对运行时无任何影响。

输出

MDA 消息指示运行时检测到由非托管模块传递给托管代码的无效 VARIANT

Configuration

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

请参阅