求将Delphi代码翻译为C语言

2025-05-17 11:10:29
推荐回答(1个)
回答1:

void SendRequest(String s)

{
int crc;
crc = pCRC16_ModBus(length(s), &s[1]);
s = s + (crc & 0xFF) + (crc >> 8);
DebugLog("Send packet (" + wl.ID + ") : " + BuffToHex(s, ' '));
AThread->Connection->Write(s);
}
上面的主要问题是(String s), 这个String不清楚。
String应该是一个类,关于字符串的数据类型,支持运算符“+”的操作
如果是翻成BCB, 直接用AnsiString类型就很好
如果是翻成纯C的,那个“s=s+...”的句子要重写。
这个求CRC的算法有毛病,length(s)这个要求s中没有0,极其无理的要求。