请问,求crc函数
WORD CalculateCRC( BYTE *RecvDataBuf, WORD RecvDataSize)
{
 WORD iInitCrc = 0x0000;  // CRC
 WORD iIndex = 0x0000;    // 数组下标
 int iRow = 0;
 int iCol = 0;
 for( int i=0; i<RecvDataSize; i++)
 {
  iIndex = LOBYTE(iInitCrc) ^ (RecvDataBuf[i]&0xFF);  // CRC地址
        iRow = HIBYTE(iIndex); 
  iCol = LOBYTE(iIndex);
  iInitCrc = (gCRCLow[iRow][iCol] ^ ( HIBYTE(iInitCrc)))&(0x00FF);  // CRC低字节
  iInitCrc = iInitCrc | (gCRCHight[iRow][iCol]<<8)&(0xFF00);
 }
 return iInitCrc;

我需要传入buf[2],但是系统报错,'CCommtestDlg::CalculateCRC' : cannot convert parameter 1 from 'BYTE' to 'BYTE []'
怎么办?        谢谢 这个求crc校检的代码,得出crc之后是与报文中的crc比较,还是查看是否为零?
不胜感激!

解决方案 »

  1.   

    在线等ing       求教,谢谢!
      

  2.   

    补充一下代码
    主函数:
    声明   BYTE buf[9];
    其中buf[2]是我需要校检的数据,请问
    WORD CalculateCRC( BYTE *RecvDataBuf, WORD RecvDataSize) 中两个参数该输入什么
      

  3.   

    我的数据格式是:  帧头(2字节)+长度码(1)+方位码(2)+CRC码(2)+帧尾(2)
    数据已经放入BYTE buf[9]中,请问如何给长度码和方位码做CRC16校检。
    麻烦具体点,网上的代码大多不适合我的数据结构,谢谢了!