|
AsmCodeByte = Array( _
&H55, &H8B, &HEC, &H83, &HEC, &H44, &H53, &H56, _
&H57, &H8B, &H45, &H8, &H8B, &H4D, &HC, &HD3, _
&HE8, &H5F, &H5E, &H5B, &H8B, &HE5, &H5D, &HC3)
For i = 0 To 23
BitRight32Code(i) = AsmCodeByte(i)
Next
SHR32Addr = VarPtr(BitRight32Code(0))
AsmCodeByte = Array( _
&H55, &H8B, &HEC, &H83, &HEC, &H44, &H53, &H56, _
&H57, &H8B, &H45, &H8, &H8B, &H4D, &HC, &HD3, _
&HE0, &H5F, &H5E, &H5B, &H8B, &HE5, &H5D, &HC3)
For i = 0 To 23
BitLeft32Code(i) = AsmCodeByte(i)
Next
SHL32Addr = VarPtr(BitLeft32Code(0))
With m_SA1DLong
.cDims = 1
.fFeatures = 17
.cbElements = 2
.clocks = 0
.pvData = VarPtr(m_lSharedLong) ''''使数组的数据指针指向长整形变量m_lSharedLong
.cElements = 2
.Lbound = 0
End With
''''使数组变量(其实就是个指针)指向我们自己创建的 SafeArray1d 结构
CopyMemory ByVal VarPtrArray(m_aiIntsInLong), VarPtr(m_SA1DLong), 4
With m_SA1DInt
.cDims = 1
.fFeatures = 17
.cbElements = 1
.clocks = 0
.pvData = VarPtr(m_lSharedInt) ''''使数组的数据指针指向长整形变量m_lSharedLong
.cElements = 2
.Lbound = 0
End With
CopyMemory ByVal VarPtrArray(m_aiBytesInInt), VarPtr(m_SA1DInt), 4
End Sub
'''' 在位操作运算完成后一个要调用此函数
''''释放资源,程序结束前一定要调用
Public Sub BitOperatorEnd()
''''把数组变量(其实就是个指针)指向 0,既 C 语言中的 NULL
CopyMemory ByVal VarPtrArray(m_aiIntsInLong), 0&, 4
CopyMemory ByVal VarPtrArray(m_aiBytesInInt), 0&, 4
End Sub
''''///////////////////////////////////////////////////////////////////////////
''''取高位整型最快的版本
Public Function HiWordFastest(ByRef Num As Long) As Integer
m_lSharedLong = Num
HiWordFastest = m_aiIntsInLong(1)
End Function
''''取低位整型最快的版本
Public Function LoWordFastest(ByRef Num As Long) As Integer
m_lSharedLong = Num
LoWordFastest = m_aiIntsInLong(0)
End Function
''''取高位Byte最快的版本
Public Function HiByteFastest(ByRef Num As Integer) As Integer
m_lSharedInt = Num
HiByteFastest = m_aiBytesInInt(1)
End Function
''''取低位整型最快的版本
Public Function LoByteFastest(ByRef Num As Integer) As Integer
m_lSharedInt = Num
LoByteFastest = m_aiBytesInInt(0)
End Function
''''///////////////////////////////////////////////////////////////////////////
''''位测试 ,测试位为1 返回真
Public Function BitTest32(Number As Long, Bit As Long) As Boolean
If Number And BitPower(Bit) Then
BitTest32 = True
Else
BitTest32 = False
End If
End Function
上一页 [1] [2] [3] 下一页 |