我用GetDiskFreeSpacesEx这个API时,遇到需要转换LARGE_INTEGER类型数值的问题,但是一直不知道该如何转换。后来在微软的知识库上看到这样的代码。请各位高手解释一下!Private Function GetSize(Lo As Long, Hi As Long) As Single
Dim dblLo As Single, dblHi As Single
If Lo < 0 Then
dblLo = 2 ^ 32 + Lo
Else
dblLo = Lo
End If
If Hi < 0 Then
dblHi = 2 ^ 32 + Hi
Else
dblHi = Hi
End If
GetSize = dblLo + dblHi * 2 ^ 32
End Function
Dim dblLo As Single, dblHi As Single
If Lo < 0 Then
dblLo = 2 ^ 32 + Lo
Else
dblLo = Lo
End If
If Hi < 0 Then
dblHi = 2 ^ 32 + Hi
Else
dblHi = Hi
End If
GetSize = dblLo + dblHi * 2 ^ 32
End Function
m=hex(n)这样得到的值不为负,挺好,不知对你有没有帮助。
GetDiskFreeSpacesEx返回的是无符号的数据,就是说最高存储的还是数据不是+/-号。
同理在long在win32中是32位的就是2^32。