HiByte,HiWord,LoByte,LoWord, MakeInt and MakeLong
Often especially when dealing with the API, byte and integer data types will be packed into LONG INTEGER (32 bit) values. Thes snippets allow you to decode/encode these 32 bit longs:
AI
สรุปโดย AI: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.
ซอร์สโค้ด
Public Function hiByte(ByVal w As Integer) As Byte If w And &H8000 Then hiByte = &H80 Or ((w And &H7FFF) \ &HFF) Else hiByte = w \ 256 End If End Function Public Function HiWord(dw As Long) As Integer If dw And &H80000000 Then HiWord = (dw \ 65535) - 1 Else HiWord = dw \ 65535 End If End Function Public Function LoByte(w As Integer) As Byte LoByte = w And &HFF End Function Public Function LoWord(dw As Long) As Integer If dw And &H8000& Then LoWord = &H8000 Or (dw And &H7FFF&) Else LoWord = dw And &HFFFF& End If End Function Public Function MakeInt(ByVal LoByte As Byte, ByVal hiByte As Byte) As Integer MakeInt = ((hiByte * &H100) + LoByte) End Function Public Function MakeLong(ByVal LoWord As Integer, ByVal HiWord As Integer) As Long MakeLong = ((HiWord * &H10000) + LoWord) End Function
ความคิดเห็นดั้งเดิม (3)
กู้คืนจาก Wayback Machine