J'ai une valeur flottante dans Variant, Initialement, cette variante est un type bstr. J'utilise VariantChangeType pour passer au type flottant. et puis j'obtiens la valeur de flotteur de lui et alors je convertis en format de vecteur d'octet.Comment changer ChangeType de Variant pour flotter si variante ayant des valeurs INF ou NAN?
Si la variante a des valeurs flottantes, cela fonctionne correctement. Si la variante a INF valeurs, VariantChangeType obtient échoué. Donc je reçois 0 de variant.fltVal. Comment changer de type pour flotter si la variante possède des valeurs INF ou NAN? Je veux obtenir des valeurs INF ou NAN en float.
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;
}
}
Pourquoi est-ce marqué 'c'? – unwind