我在变体中有浮点值,最初这个变体是 bstr 类型。我正在使用VariantChangeType更改为浮点类型。然后我从中获取浮点值,然后我将其转换为字节向量格式。
如果变体具有浮点值,则可以正常工作。如果变体具有INF值,则 VariantChangeType会失败。所以我从variant.fltVal 得到0。
如果变体具有 INF 或 NAN 值,如何将类型更改为浮动?我想在浮点数中获取 INF 或 NAN 值。
Convert(_variant_t varVal,vector<byte> dataArr)
{
HRESULT hr = VariantChangeType( varVal&, &varVal, 0 , VT_R4 );
// Above code is failing if varVal.bstr contains 1.#INF" values
UINT size = 4;
if ( data && dataItem.vt != VT_EMPTY )
{
float value = dataItem.fltVal;
BYTE tmpBuf[4];
memcpy(tmpBuf, &value, sizeof(value));
for( int i = size - 1 ; i >= 0 ; i-- )
{
data->push_back(tmpBuf[i]);
}
retVal = TRUE;
}
}