首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

帮忙将C++代码转换为Delphi代码,该如何处理

2012-03-22 
帮忙将C++代码转换为Delphi代码CStringstrHostNameunsignedcharch[50]{0x00}m_strLocalNamemestars u

帮忙将C++代码转换为Delphi代码
CString   strHostName;
unsigned   char   ch[50]   =   {0x00};
m_strLocalName   =   'mestars ';
unsigned   char   crc;
int   i   =   0,   k   =   0;
ch[0]   =   0x55;
ch[1]   =   0xAA;
ch[2]   =   0xFD;
ch[3]   =   0x01;
ch[4]   =   m_strLocalName.GetLength()   +   5;;
ch[5]   =   0x01;
ch[6]   =   0x01;
ch[7]   =   0x38;


for(i   =   0;   i   <   m_strLocalName.GetLength();   i++)
{
ch[8   +   i]   =   (unsigned   char)m_strLocalName.GetAt(i);
}
ch[8   +   i]   =   0x00;   //计算机名称结束符
crc   =   0xff;
for(k   =   2;   k   <   (8   +   i   +   1);   k++)
{
crc   ^=   ch[k];
crc   =   CRC_ary[crc];   //   CRC_ary为一个数组unsigned   char   CRC_ary[]
}
ch[8   +   i   +   1]   =   crc;

[解决办法]
var
m_strLocalName : String;
ch : array[0..49] of Byte;
crc : Byte;
i, k : Integer;
begin
m_strLocalName := 'mestars ';
ch[0] := $55;
ch[1] := $AA;
ch[2] := $FD;
ch[3] := $01;
ch[4] := Length(m_strLocalName) + 5;;
ch[5] := $01;
ch[6] := $01;
ch[7] := $38;
i := 0;
while i < Length(m_strLocalName) do
begin
ch[8 + i] := ord(m_strLocalName[i + 1]);
inc(i);
end;
ch[8 + i] := $00; //计算机名称结束符
crc := $ff;
for k := 2 to 8 + i do
begin
crc := crc xor ch[k];
crc := CRC_ary[crc];
end;
ch[8 + i + 1] := crc;
end;

[解决办法]
已解

热点排行