打印本文 打印本文 关闭窗口 关闭窗口
More Faster , More VB User
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2268  更新时间:2009/4/23 15:41:40  文章录入:mintao  责任编辑:mintao

    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]  下一页

打印本文 打印本文 关闭窗口 关闭窗口