请帮忙看个VC的函数怎么转成D ( 积分: 100 )

  • 主题发起人 bluedyness
  • 开始时间
B

bluedyness

Unregistered / Unconfirmed
GUEST, unregistred user!
unsigned short sum( DWORD addr, LPBYTE lpCode, DWORD len )
{
unsigned short check_sum = 0x1000 + (unsigned short)addr;

unsigned short uiSourceValue, uiDestValue;
for( int i = 0; i < len; i += sizeof(unsigned short) )
{
uiSourceValue = *(unsigned short*)&lpCode[ i ];
uiDestValue = 0;
CONVERT_SHORT( uiSourceValue, uiDestValue);
check_sum += uiDestValue;
}

return check_sum;
}
//////////////////////////////////////////////////////
function sum(addr:cardinal;lpcode:pbyte;len:cardinal):word;
var
check_sum,
uiSourceValue, uiDestValue:word;
i:integer;
begin
check_sum := $1000 + addr;
i:=0;
GetMem(lpcode,128);
while i<len do
begin
uiSourceValue:=lpcode^;
uiDestValue:=0;
CONVERT_SHORT( uiSourceValue, uiDestValue);//????咋弄
check_sum :=check_sum + uiDestValue;
i:=i + sizeof(word);
inc(lpcode,sizeof(word));
end;
FreeMem(lpcode);
result:=check_sum;
end;
不知道上面写的对不对 但现在最关键的问题是:
CONVERT_SHORT 该怎么转 我在那个cpp文件中找不到,直接拿vc++也编译不过去!咋办?
 
我晕~~ 卡死了 以为没有提交成功 结果把问题发了2次 笨阿~~~
 
问题已自己解决 但没人回帖 结不了帖 要分的请踩踩 马上结了
 
好,接分
 
偶晕 才3秒阿 楼上的这个速度可真是...比For循环还要快~~~
 
接受答案了.
 
顶部