//CRC校验
uint fun_SerialCRC(uchar *puchMsg, uint usDataLen)
{
uchar uchCRCHi;
uchar uchCRCLo;
uint uIndex ;

uchCRCHi = 0xff;
uchCRCLo = 0xff;

while (usDataLen–)
{
uIndex = uchCRCHi ^ *puchMsg++;
uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex];
uchCRCLo = auchCRCLo[uIndex];
}

return (uchCRCHi < < 8 &brvbar uchCRCLo);
}

//RS485
//for high byte of CRC
uchar code auchCRCHi[] = {
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41,
0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0,
0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1,
0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1,
0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40,
0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1,
0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40,
0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0,
0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41,
0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41,
0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40,
0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1,
0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41,
0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0,
0×80, 0×41, 0×00, 0xC1, 0×81, 0×40
};

//for low byte of CRC
uchar code auchCRCLo[] = {
0×00, 0xC0, 0xC1, 0×01, 0xC3, 0×03, 0×02, 0xC2, 0xC6, 0×06,
0×07, 0xC7, 0×05, 0xC5, 0xC4, 0×04, 0xCC, 0×0C, 0×0D, 0xCD,
0×0F, 0xCF, 0xCE, 0×0E, 0×0A, 0xCA, 0xCB, 0×0B, 0xC9, 0×09,
0×08, 0xC8, 0xD8, 0×18, 0×19, 0xD9, 0×1B, 0xDB, 0xDA, 0×1A,
0×1E, 0xDE, 0xDF, 0×1F, 0xDD, 0×1D, 0×1C, 0xDC, 0×14, 0xD4,
0xD5, 0×15, 0xD7, 0×17, 0×16, 0xD6, 0xD2, 0×12, 0×13, 0xD3,
0×11, 0xD1, 0xD0, 0×10, 0xF0, 0×30, 0×31, 0xF1, 0×33, 0xF3,
0xF2, 0×32, 0×36, 0xF6, 0xF7, 0×37, 0xF5, 0×35, 0×34, 0xF4,
0×3C, 0xFC, 0xFD, 0×3D, 0xFF, 0×3F, 0×3E, 0xFE, 0xFA, 0×3A,
0×3B, 0xFB, 0×39, 0xF9, 0xF8, 0×38, 0×28, 0xE8, 0xE9, 0×29,
0xEB, 0×2B, 0×2A, 0xEA, 0xEE, 0×2E, 0×2F, 0xEF, 0×2D, 0xED,
0xEC, 0×2C, 0xE4, 0×24, 0×25, 0xE5, 0×27, 0xE7, 0xE6, 0×26,
0×22, 0xE2, 0xE3, 0×23, 0xE1, 0×21, 0×20, 0xE0, 0xA0, 0×60,
0×61, 0xA1, 0×63, 0xA3, 0xA2, 0×62, 0×66, 0xA6, 0xA7, 0×67,
0xA5, 0×65, 0×64, 0xA4, 0×6C, 0xAC, 0xAD, 0×6D, 0xAF, 0×6F,
0×6E, 0xAE, 0xAA, 0×6A, 0×6B, 0xAB, 0×69, 0xA9, 0xA8, 0×68,
0×78, 0xB8, 0xB9, 0×79, 0xBB, 0×7B, 0×7A, 0xBA, 0xBE, 0×7E,
0×7F, 0xBF, 0×7D, 0xBD, 0xBC, 0×7C, 0xB4, 0×74, 0×75, 0xB5,
0×77, 0xB7, 0xB6, 0×76, 0×72, 0xB2, 0xB3, 0×73, 0xB1, 0×71,
0×70, 0xB0, 0×50, 0×90, 0×91, 0×51, 0×93, 0×53, 0×52, 0×92,
0×96, 0×56, 0×57, 0×97, 0×55, 0×95, 0×94, 0×54, 0×9C, 0×5C,
0×5D, 0×9D, 0×5F, 0×9F, 0×9E, 0×5E, 0×5A, 0×9A, 0×9B, 0×5B,
0×99, 0×59, 0×58, 0×98, 0×88, 0×48, 0×49, 0×89, 0×4B, 0×8B,
0×8A, 0×4A, 0×4E, 0×8E, 0×8F, 0×4F, 0×8D, 0×4D, 0×4C, 0×8C,
0×44, 0×84, 0×85, 0×45, 0×87, 0×47, 0×46, 0×86, 0×82, 0×42,
0×43, 0×83, 0×41, 0×81, 0×80, 0×40
};

我在头文件里增加typedef unsigned int uint;
typedef unsigned char uchar;
还是不行,有两个问题:
1、uchar code auchCRCHi[] 怎么处理?
2、__fastcall TForm1::uint fun_SerialCRC(uchar *puchMsg, uint usDataLen);在声明时也提示不正确。
我是新手,请再指教,谢谢!

引用 1 楼 akirya 的回复:
增加typedef unsigned int uint;
typedef unsigned char uchar;
然后直接copy代码过去用.

C/C++ code
#define code typedef unsigned int uint; typedef unsigned char uchar; //RS485 //for high byte of CRC uchar code auchCRCHi[] = { 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40, 0×01, 0xC0, 0×80, 0×41, 0×01, 0xC0, 0×80, 0×41, 0×00, 0xC1, 0×81, 0×40 }; //for low byte of CRC uchar code auchCRCLo[] = { 0×00, 0xC0, 0xC1, 0×01, 0xC3, 0×03, 0×02, 0xC2, 0xC6, 0×06, 0×07, 0xC7, 0×05, 0xC5, 0xC4, 0×04, 0xCC, 0×0C, 0×0D, 0xCD, 0×0F, 0xCF, 0xCE, 0×0E, 0×0A, 0xCA, 0xCB, 0×0B, 0xC9, 0×09, 0×08, 0xC8, 0xD8, 0×18, 0×19, 0xD9, 0×1B, 0xDB, 0xDA, 0×1A, 0×1E, 0xDE, 0xDF, 0×1F, 0xDD, 0×1D, 0×1C, 0xDC, 0×14, 0xD4, 0xD5, 0×15, 0xD7, 0×17, 0×16, 0xD6, 0xD2, 0×12, 0×13, 0xD3, 0×11, 0xD1, 0xD0, 0×10, 0xF0, 0×30, 0×31, 0xF1, 0×33, 0xF3, 0xF2, 0×32, 0×36, 0xF6, 0xF7, 0×37, 0xF5, 0×35, 0×34, 0xF4, 0×3C, 0xFC, 0xFD, 0×3D, 0xFF, 0×3F, 0×3E, 0xFE, 0xFA, 0×3A, 0×3B, 0xFB, 0×39, 0xF9, 0xF8, 0×38, 0×28, 0xE8, 0xE9, 0×29, 0xEB, 0×2B, 0×2A, 0xEA, 0xEE, 0×2E, 0×2F, 0xEF, 0×2D, 0xED, 0xEC, 0×2C, 0xE4, 0×24, 0×25, 0xE5, 0×27, 0xE7, 0xE6, 0×26, 0×22, 0xE2, 0xE3, 0×23, 0xE1, 0×21, 0×20, 0xE0, 0xA0, 0×60, 0×61, 0xA1, 0×63, 0xA3, 0xA2, 0×62, 0×66, 0xA6, 0xA7, 0×67, 0xA5, 0×65, 0×64, 0xA4, 0×6C, 0xAC, 0xAD, 0×6D, 0xAF, 0×6F, 0×6E, 0xAE, 0xAA, 0×6A, 0×6B, 0xAB, 0×69, 0xA9, 0xA8, 0×68, 0×78, 0xB8, 0xB9, 0×79, 0xBB, 0×7B, 0×7A, 0xBA, 0xBE, 0×7E, 0×7F, 0xBF, 0×7D, 0xBD, 0xBC, 0×7C, 0xB4, 0×74, 0×75, 0xB5, 0×77, 0xB7, 0xB6, 0×76, 0×72, 0xB2, 0xB3, 0×73, 0xB1, 0×71, 0×70, 0xB0, 0×50, 0×90, 0×91, 0×51, 0×93, 0×53, 0×52, 0×92, 0×96, 0×56, 0×57, 0×97, 0×55, 0×95, 0×94, 0×54, 0×9C, 0×5C, 0×5D, 0×9D, 0×5F, 0×9F, 0×9E, 0×5E, 0×5A, 0×9A, 0×9B, 0×5B, 0×99, 0×59, 0×58, 0×98, 0×88, 0×48, 0×49, 0×89, 0×4B, 0×8B, 0×8A, 0×4A, 0×4E, 0×8E, 0×8F, 0×4F, 0×8D, 0×4D, 0×4C, 0×8C, 0×44, 0×84, 0×85, 0×45, 0×87, 0×47, 0×46, 0×86, 0×82, 0×42, 0×43, 0×83, 0×41, 0×81, 0×80, 0×40 }; uint fun_SerialCRC(uchar *puchMsg, uint usDataLen) { uchar uchCRCHi; uchar uchCRCLo; uint uIndex ; uchCRCHi = 0xff; uchCRCLo = 0xff; while (usDataLen) { uIndex = uchCRCHi ^ *puchMsg++; uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex]; uchCRCLo = auchCRCLo[uIndex]; } return (uchCRCHi << 8 | uchCRCLo); }

这是我做的小例子的源码,谁帮忙看一下问题出在哪里?谢谢!
http://download.csdn.net/source/605216