CComVariant で使用する/使用する小数点記号を指定できますか?
コンテキスト: MSMXML (IXMLDOMElementPtr.getAttribute) は、属性の型に関係なく、VT_BSTR で初期化された CComVariant を常に返します。したがって、多くの場合、'.' を使用して BSTR に格納された 10 進数値になります。小数点として。ただし、Windows がコンマ ',' を小数点として構成されている場合、CComVariant は double または float に変換できません。
例:
CComVariant dummy = "1.2345";
dummy.ChangeType(VT_R8);
if(dummy.vt != VT_R8) {
cout << "Failed to convert" << endl;
}
else {
cout << dummy.dblVal << endl;
}
Windows の小数点記号がコンマの場合、「変換に失敗しました」に該当します。設定してみましたstd::locale::global(std::locale("English_United States.1252"))
が、何も変わりませんでした。