740
社区成员
发帖
与我相关
我的任务
分享
PB实现:
function byte f_getcheck(string p_check);
byte b=0
long n,ll_count,v=0
ll_count = len(p_check)
if(isnull(p_check) or ll_count = 0) then return b
for n = 1 to ll_count
v += asc(mid(p_check,n,1))
v = mod(v,256)
end for
b = v
return v
end function
BYTE WINAPI f_getcheck(LPCTSTR lps,LONG PACKAGELEN)
{
__try
{
BYTE check = 0,i;
BYTE *lpbyte;
lpbyte = (BYTE *)lps;
for(i = 2;i < PACKAGELEN - 1;i ++)
{
check = check + lpbyte[i];
}
return check;
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
return 0;
}
}
导出后,PB声明:
function byte f_getcheck(ref string lps,LONG PACKAGELEN) library "" for alias "f_getcheck;ansi"