Com 如何更改变体的类型

Com 如何更改变体的类型,com,automation,Com,Automation,我有一个型号设置为VT_R8的变体。随后,我需要将其类型更改为VT_BSTR 我想知道是否有办法重置变体状态 因此,我注意到,每次我将值设置为VARIANT(在我的例子中为其double)时,VARIANT本身都会将其bstrVal成员设置为错误指针,即使在VARIANT初始化时我将bstrVal成员设置为NULL。为什么会发生这样的事情 将变量用作同时设置dbVal和bstrVal成员的结构安全吗 请澄清,谢谢。变体是一种带有内部的结构。根据类型(VARIANT::vt),您可以用不同的方式解

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

我想知道是否有办法重置变体状态

因此,我注意到,每次我将值设置为VARIANT(在我的例子中为其double)时,VARIANT本身都会将其bstrVal成员设置为错误指针,即使在VARIANT初始化时我将bstrVal成员设置为NULL。为什么会发生这样的事情

将变量用作同时设置dbVal和bstrVal成员的结构安全吗


请澄清,谢谢。

变体是一种带有内部的结构。根据类型(
VARIANT::vt
),您可以用不同的方式解释该联合。如果将“使用变量”设置为存储双精度,则只使用“双精度”字段,而不使用任何其他字段。如果您想重用变量来存储BSTR,请相应地更改类型-在您的示例中,只需更改“type”值并将“BSTR”值设置为null