注意
本文特定于 .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>