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>