关于将single型的变量值copymemory到内存后的格式有关问题
关于将single型的变量值copymemory到内存后的格式问题?
将single型的变量值copymemory到内存,再一个字节一个字节读出,不知道结果的格式是什么,请教高人
'以下是single输出结果
-----------------------
Byte 1=0
Byte 2=0
Byte 3=2
Byte 4=66
-----------------------
'以下是double输出结果
Byte 1=0
Byte 2=0
Byte 3=0
Byte 4=0
Byte 5=0
Byte 6=64
Byte 7=64
Byte 8=64
-----------------------
'code
Private Declare Sub CopyMemory Lib "kernel32 " Alias "RtlMoveMemory " (ByVal pDst As Any, ByVal pSrc As Any, ByVal ByteLen As Long)
'API memory functions
Private Declare Function GlobalAlloc Lib "kernel32 " (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib "kernel32 " (ByVal hMem As Long) As Long
Private Declare Function GlobalLock Lib "kernel32 " (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32 " (ByVal hMem As Long) As Long
'constants for API memory functions
Private Const GMEM_MOVEABLE = &H2
Private Const GMEM_ZEROINIT = &H40
Private Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
Dim pHnd As Long
Dim MemPoint As Long
Private Sub cmd_Free_Click()
' GlobalFree pHnd
End Sub
Private Sub Command1_Click()
Dim i As Long
Dim test As Single
Dim test3 As Single
Dim test2 As Long
Dim ReadMem As Byte
Dim WriteMem As Byte
Dim tmpStr As String
pHnd = GlobalAlloc(GHND, 80)
MemPoint = GlobalLock(pHnd)
tmpStr = " "
test = 32.5
test2 = 0
test3 = 0
ReadMem = 0
CopyMemory MemPoint , VarPtr(test), 4
For i = 1 To 4
CopyMemory VarPtr(ReadMem), MemPoint + i - 1, i
tmpStr = Trim(Str(ReadMem))
Debug.Print "Byte " & Trim(Str(i)) & "= "; tmpStr
将single型的变量值copymemory到内存,再一个字节一个字节读出,不知道结果的格式是什么,请教高人
'以下是single输出结果
-----------------------
Byte 1=0
Byte 2=0
Byte 3=2
Byte 4=66
-----------------------
'以下是double输出结果
Byte 1=0
Byte 2=0
Byte 3=0
Byte 4=0
Byte 5=0
Byte 6=64
Byte 7=64
Byte 8=64
-----------------------
'code
Private Declare Sub CopyMemory Lib "kernel32 " Alias "RtlMoveMemory " (ByVal pDst As Any, ByVal pSrc As Any, ByVal ByteLen As Long)
'API memory functions
Private Declare Function GlobalAlloc Lib "kernel32 " (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib "kernel32 " (ByVal hMem As Long) As Long
Private Declare Function GlobalLock Lib "kernel32 " (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32 " (ByVal hMem As Long) As Long
'constants for API memory functions
Private Const GMEM_MOVEABLE = &H2
Private Const GMEM_ZEROINIT = &H40
Private Const GHND = (GMEM_MOVEABLE Or GMEM_ZEROINIT)
Dim pHnd As Long
Dim MemPoint As Long
Private Sub cmd_Free_Click()
' GlobalFree pHnd
End Sub
Private Sub Command1_Click()
Dim i As Long
Dim test As Single
Dim test3 As Single
Dim test2 As Long
Dim ReadMem As Byte
Dim WriteMem As Byte
Dim tmpStr As String
pHnd = GlobalAlloc(GHND, 80)
MemPoint = GlobalLock(pHnd)
tmpStr = " "
test = 32.5
test2 = 0
test3 = 0
ReadMem = 0
CopyMemory MemPoint , VarPtr(test), 4
For i = 1 To 4
CopyMemory VarPtr(ReadMem), MemPoint + i - 1, i
tmpStr = Trim(Str(ReadMem))
Debug.Print "Byte " & Trim(Str(i)) & "= "; tmpStr