是什么导致 EVariantBadVarTypeError 异常?

What causes EVariantBadVarTypeError exception?

我在应用程序关闭时遇到类型为 EVariantBadVarTypeError 的异常。

我想自己调试我的应用程序,但是 Documentation 对我来说不是很清楚,我也不知道我应该在我的代码中查找哪种错误..

EVariantBadVarTypeError is the exception class for variant type errors.

EVariantBadVarTypeError is raised when a variant operation fails because of a value that isn't a valid variant type.

谁能告诉我更清楚的解释和导致这种异常的例子?特别是,我不知道哪些值不是 "valid variant types".

有效变体类型字符串、整数、实数等。任何其他类型,如对象,都不是有效变体。更多信息在这里:

http://docwiki.embarcadero.com/RADStudio/Seattle/en/Variant_Types

关于 Windows、VariantOleVariant 内部使用 COM Automation functions for various VARIANT operations. EVariantBadVarTypeError is raised when one of the VARIANT functions (like VariantCopy(), VariantClear(), VariantChangeTypeEx(), VarI4FromStr(), etc) fails with a VAR_BADVARTYPE 错误:

The variant type of the input parameter is not valid.

这意味着变体的 vt 字段指定的数据类型与正在执行的操作不兼容。

这解释了异常是什么,但没有解释为什么它会在您的应用程序中引发。如果没有更多关于引发异常时您的代码在做什么、导致引发异常的堆栈跟踪看起来像什么等的更多详细信息,这里的任何人都无法诊断实际发生了什么或如何修复它。您必须调试代码才能弄明白。