如何更改VARIANT的类型

时间:2010-05-05 04:52:47

标签: com automation

我有一个VARIANT,其类型设置为VT_R8。随后我需要将其类型更改为VT_BSTR。

我想知道是否有重置VARIANT状态的方法。

因此,我注意到每次将值设置为VARIANT(在我的情况下,它是double)时,VARIANT本身将其bstrVal成员设置为错误指针,即使我在VARIANT初始化时将bstrVal成员设置为NULL。为什么会这样呢?

使用VARIANT作为设置dbVal和bstrVal成员的结构是否安全?

请澄清,谢谢。

1 个答案:

答案 0 :(得分:1)

VARIANT是一个内部有union的结构。根据类型(VARIANT::vt),您可以通过不同方式解释该联合。如果设置使用VARIANT来存储双精度,则只使用“双”字段,而不是任何其他字段。如果要重用变量来存储BSTR,则更改类型 - 在您的情况下,简单地更改“type”值并将“BSTR”值设置为null。