我试图将四个字节复制到一个整数变量中。简而言之,我想在vba中执行UNION。我的职能:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
ByRef Destination As Any, _
ByRef Source As Any, _
ByVal Length As Long)和
Function Byte2Int32(ByVal Num1 As Byte, ByVal Num2 As Byte, ByVal Num3 As Byte, ByVal Num4 As Byte) As Integer
Dim D As Integer
Dim TabData(3) As Long
TabData(0) = Num4
TabData(1) = Num3
TabData(2) = Num2
TabData(3) = Num1
CopyMemory D, TabData(0), 4
Byte2Int32 = D
End Function函数调用:=Byte2Int32(C6;D6;E6;F6),其中C6 = 40,D6 = 20,E6 = 50,F6 = 68。结果: 68例。为了复制内存,我应该更改什么?最终,该函数应该适用于变量双倍?对于两个字节,它可以工作。
发布于 2022-01-19 19:16:48
函数上的某些类型是不正确的。这个版本似乎正在发挥作用:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
ByRef Destination As Any, _
ByRef Source As Any, _
ByVal Length As Long)
Function Byte2Int32(ByVal Num1 As Byte, ByVal Num2 As Byte, ByVal Num3 As Byte, ByVal Num4 As Byte) As Long
Dim D As Long
Dim TabData(3) As Byte
TabData(0) = Num4
TabData(1) = Num3
TabData(2) = Num2
TabData(3) = Num1
CopyMemory D, TabData(0), 4
Byte2Int32 = D
End Functionhttps://stackoverflow.com/questions/70776269
复制相似问题