1
我有一個Windows VARIANT
持有BSTR與(數字)(數字值)。Windows變體強制規則?
我想用VariantChangeType
這個BSTR值轉換爲VT_I4或VT_I8或...
令我驚訝的是,傳遞的"5.6"
一個字符串值,.
是我小數點分隔符,函數成功整數轉換,並且由此產生的lVal
或llVal
的值爲6
!我本來預計會出現轉換錯誤,或者5
,這是sscanf
給我的值。
-->
是否有關於VARIANT conversion functions使用的轉換規則的任何文檔?<--
我發現VariantChangeType
通過(例如)VarI4FromStr
實施,但有零信息WRT。這個函數使用的轉換規則。
https://social.msdn.microsoft.com/Forums/vstudio/en-US/9fee1107-957b-403c-86c1-f42ccfb88f50/windows-variant-coercion-rules –
從MSDN:」 ...看起來VarI4FromStr和VariantChangeType在轉換期間向上或向下舍入值,例如「5.4」被轉換爲5.「 –