我需要在 _variant_t 和 long\bool_bstr_t 等类型之间执行安全转换。
有很多选择可以做到这一点,但我迷失在(糟糕的)文档中。例如转换为 long: 选项 1:检查变体类型是否为 long (==VT_I4),如果是,则执行静态转换。选项2:使用提取器,我不完全理解。MSDN 说,如果 VARIANT 不是正确的类型,则 VariantChangeType 用于尝试转换。但是,如果 VariantChangeType 失败,则会返回错误代码。我在哪里得到这个错误代码?返回类型应该是我们要提取的类型,不是吗?
我很感激最安全的解决方案和各种选项的解释。