void Client::Fx(unsigned char* ch)
{
unsigned char* pchar = ch;
for(int i = 0; i < m_nMsgLen; i++)
{
switch(m_nSamhp)
{
case 1: //frame byte
*m_pRec = pchar[i];
m_pRec++;
m_nLen--;
if(m_nLen < 1)
{
m_nSamhp = 0;
m_pRec = m_szRec; //置初始位置
if(m_check == pchar[i])
{
m_szRec[1] = GOVT_BUF_OK;
}
else
m_szRec[1] = GOVT_BUF_NULL;
}
else
{
m_check ^= pchar[i];
m_check = CRC_ary[m_check];//一个数组 byte
}
break;
}
}
}
{
unsigned char* pchar = ch;
for(int i = 0; i < m_nMsgLen; i++)
{
switch(m_nSamhp)
{
case 1: //frame byte
*m_pRec = pchar[i];
m_pRec++;
m_nLen--;
if(m_nLen < 1)
{
m_nSamhp = 0;
m_pRec = m_szRec; //置初始位置
if(m_check == pchar[i])
{
m_szRec[1] = GOVT_BUF_OK;
}
else
m_szRec[1] = GOVT_BUF_NULL;
}
else
{
m_check ^= pchar[i];
m_check = CRC_ary[m_check];//一个数组 byte
}
break;
}
}
}
解决方案 »
- 能取到TADOQuery的sql的表名吗?
- ClientDataSet 更新问题 急急急,请高手指点
- 求打砖块游戏一段源码???
- 刚才测试的分布式消息通讯程序的报告
- 一个头痛的DELPHI问题
- 一个函数的执行过程要花很多时间,怎么让它暂停,继续执行,取消?急!!
- 小问题!!!!
- 我有一表,其中有字符型及布尔型,我想在GRID或其它组件中显示布尔型,不知怎么办?
- 数据库连接
- 好久没来问问题了。。分倒积了不少。问问:大家是用什么办法把Query查询出的内容add到memo中去的,不是一条,是全部记录。最好能把字段名也加进去。
- 谁有用xaudio.dll采集声音数据画波形图的例子?
- 有没有遇到过这样的情况!
int m_nSamhp;
int m_nMsgLen;
int m_nLen;
unsigned char m_szRec[255];
unsigned char* m_pRec;
unsigned char m_check;
m_nSamhp: Integer;
m_nMsgLen: Integer;
m_nLen: Integer;
m_szRec: Array [0..254] of Char;
m_pRec: PChar;
m_check: Char;
procedure Client.Fx(ch: PChar);
var
pc: PChar; //pchar 改为 pc
i: Integer;
begin
pc := ch;
for i := 0 to m_nMsgLen - 1 do
begin
case (m_nSamhp) of
1: //frame byte
begin
m_pRec := @pc[i];
Inc(m_pRec);
Dec(m_nLen);
if (m_nLen < 1) then
begin
m_nSamhp := 0;
m_pRec := m_szRec; //置初始位置
if (m_check = pc[i]) then
begin
m_szRec[1] := GOVT_BUF_OK;
end
else
m_szRec[1] := GOVT_BUF_NULL;
end
else
begin
m_check := Char(Byte(m_check) xor Byte(pc[i]));
m_check := CRC_ary[m_check];//一个数组 byte
end;
end;
end;
end;
end;