解决方案 »
- 求助:分别取Text1中的数字与字母
- VB未定义,大虾与高手看过来。。。。
- 高分求助!关于webbrowser控件加载网页会有声音(WIN声音设置里配置声音),如何不影响IE的屏蔽??
- 二进制流的问题
- 用vbscript 写一定时执行一函数
- 急求 VB小区物业管理系统源码
- Windows中实现的功能都是通过API函数吗?怎样可以找到用的是什么函数呢?
- 如何得到文件(例:"C:\aa.txt")的若干信息:1.名称2.所在文件夹3.大小4.类型5.修改时间???
- CSDN我的家,VB程序员都进来签个名吧。
- 关于VB DataGrid 问题
- VB6.0 保存office文档时总是提示保存模板?
- 数据统计问题?
不知道你现在提示的是什么错误
Private Declare Function CRC16 Lib "CRC16" (ByRef puchMsg As Byte, ByVal usDataLen As Integer) As Long
直接引用后使用的,关键是
Private Declare Function CRC16 Lib "CRC16" (ByRef puchMsg As Byte, ByVal usDataLen As Integer) As Long
这个dll要和可执行文件同一目录,或者在红色部分用绝对路径,如:c:\CRC16.dll
'名称 CRC16
'参数 Data Byte() 数据内容
' Length Integer 计算长度,默认值 1
'返回 Byte()
'类型 Private Function
'说明 计算CRC16值
'日期 2007-03-09
' 2007-03-15 修改Length判断
'=================================
Private Function CRC16(Data() As Byte, Optional ByVal Offset As Integer = 0, Optional ByVal Length As Integer = 0) As Byte()
Dim CRC16Lo As Byte, CRC16Hi As Byte 'CRC寄存器
Dim CL As Byte, CH As Byte '多项式码&HA001
Dim SaveHi As Byte, SaveLo As Byte
Dim I As Integer
Dim Flag As Integer
Dim ReturnData(1) As Byte
CRC16Lo = &HFF
CRC16Hi = &HFF
CL = &H1
CH = &HA0
Length = IIf(Length < 1, UBound(Data) - Offset, Length - 1) 'Update 2007-03-15
For I = Offset To Offset + Length
CRC16Lo = CRC16Lo Xor Data(I) '每一个数据与CRC寄存器进行异或
For Flag = 0 To 7
SaveHi = CRC16Hi
SaveLo = CRC16Lo
CRC16Hi = CRC16Hi \ 2 '高位右移一位
CRC16Lo = CRC16Lo \ 2 '低位右移一位
If ((SaveHi And &H1) = &H1) Then '如果高位字节最后一位为1
CRC16Lo = CRC16Lo Or &H80 '则低位字节右移后前面补1
End If '否则自动补0
If ((SaveLo And &H1) = &H1) Then '如果LSB为1,则与多项式码进行异或
CRC16Hi = CRC16Hi Xor CH
CRC16Lo = CRC16Lo Xor CL
End If
Next
Next
ReturnData(0) = CRC16Lo 'CRC低位
ReturnData(1) = CRC16Hi 'CRC高位
CRC16 = ReturnData
End Function