找到一个C++的哈希函数,如下://  RS Hash Function 
 unsigned  int  RSHash( char   * str)
  {
        unsigned  int  b  =   378551 ;
        unsigned  int  a  =   63689 ;
        unsigned  int  hash  =   0 ;         while  ( * str)
          {
                hash  =  hash  *  a  +  ( * str ++ );
                a  *=  b;
        } 
 
         return  (hash  &   0x7FFFFFFF );
} 现在要转成VB的,写成这样:' RS ¹þÏ£º¯Êý
Private Function Hash_RS(strText As String) As String
    Dim lngB As Long
    Dim lngA As Long
    Dim lngHash As Long
    Dim bytArr() As Byte
    
    Dim lngLen As Long
    Dim i As Long
    Dim strTmp As Byte
    
    lngB = 378551#
    lngA = 63689#
    lngHash = 0
    bytArr = StrConv(strText, vbFromUnicode)
    lngLen = UBound(bytArr)
    For i = 0 To lngLen
        lngHash = lngHash * lngA + bytArr(i)
        lngA = lngA * lngB  '****
    Next
    
    lngHash = lngHash And &H7FFFFFFF
   
    Hash_RS = lngHash
End Function结果在***这句无法运行,两个数相乘已经超过了long。