谁可以把这个VC程序改成DELPHI程序,是CRC校验? (20分)

  • 主题发起人 主题发起人 hua8hua
  • 开始时间 开始时间
H

hua8hua

Unregistered / Unconfirmed
GUEST, unregistred user!
#include "crc32.h"

long crc32_table[] = {
0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9,
0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005,
0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61,
0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9,
0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,
0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011,
0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd,
0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5,
0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81,
0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,
0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49,
0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1,
0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d,
0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae,
0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,
0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca,
0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde,
0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02,
0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066,
0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e,
0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692,
0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6,
0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a,
0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,
0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686,
0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a,
0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637,
0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f,
0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,
0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47,
0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b,
0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623,
0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7,
0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,
0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f,
0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7,
0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b,
0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f,
0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,
0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c,
0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8,
0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24,
0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30,
0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088,
0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654,
0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0,
0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c,
0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,
0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0,
0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c,
0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668,
0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4 };


unsigned long crc32(/*long crc, */char *buf, unsigned short length)
{
unsigned long crc_seed;
unsigned short buf_offset;
unsigned char table_offset;

/*crc_seed = crc ^ 0xFFFFFFFF;*/
crc_seed = 0xFFFFFFFF;
buf_offset = 0;

while ( buf_offset<length ) {
table_offset=(unsigned char)((crc_seed>>24) & 0x000000FF);
table_offset=table_offset ^ buf[buf_offset++];
crc_seed = (crc_seed<<8) ^ crc32_table[table_offset];
}

return crc_seed;
}
 
while ( buf_offset>24) & 0x000000FF);

这句有错!
 
以下代码在NT4.0,Delphi5.0中编译通过。
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

const
crc32_table:array[0..255] of longint = ($00000000, $04c11db7, $09823b6e, $0d4326d9,
$130476dc, $17c56b6b, $1a864db2, $1e475005,
$2608edb8, $22c9f00f, $2f8ad6d6, $2b4bcb61,
$350c9b64, $31cd86d3, $3c8ea00a, $384fbdbd,
$4c11db70, $48d0c6c7, $4593e01e, $4152fda9,
$5f15adac, $5bd4b01b, $569796c2, $52568b75,
$6a1936c8, $6ed82b7f, $639b0da6, $675a1011,
$791d4014, $7ddc5da3, $709f7b7a, $745e66cd,
$9823b6e0, $9ce2ab57, $91a18d8e, $95609039,
$8b27c03c, $8fe6dd8b, $82a5fb52, $8664e6e5,
$be2b5b58, $baea46ef, $b7a96036, $b3687d81,
$ad2f2d84, $a9ee3033, $a4ad16ea, $a06c0b5d,
$d4326d90, $d0f37027, $ddb056fe, $d9714b49,
$c7361b4c, $c3f706fb, $ceb42022, $ca753d95,
$f23a8028, $f6fb9d9f, $fbb8bb46, $ff79a6f1,
$e13ef6f4, $e5ffeb43, $e8bccd9a, $ec7dd02d,
$34867077, $30476dc0, $3d044b19, $39c556ae,
$278206ab, $23431b1c, $2e003dc5, $2ac12072,
$128e9dcf, $164f8078, $1b0ca6a1, $1fcdbb16,
$018aeb13, $054bf6a4, $0808d07d, $0cc9cdca,
$7897ab07, $7c56b6b0, $71159069, $75d48dde,
$6b93dddb, $6f52c06c, $6211e6b5, $66d0fb02,
$5e9f46bf, $5a5e5b08, $571d7dd1, $53dc6066,
$4d9b3063, $495a2dd4, $44190b0d, $40d816ba,
$aca5c697, $a864db20, $a527fdf9, $a1e6e04e,
$bfa1b04b, $bb60adfc, $b6238b25, $b2e29692,
$8aad2b2f, $8e6c3698, $832f1041, $87ee0df6,
$99a95df3, $9d684044, $902b669d, $94ea7b2a,
$e0b41de7, $e4750050, $e9362689, $edf73b3e,
$f3b06b3b, $f771768c, $fa325055, $fef34de2,
$c6bcf05f, $c27dede8, $cf3ecb31, $cbffd686,
$d5b88683, $d1799b34, $dc3abded, $d8fba05a,
$690ce0ee, $6dcdfd59, $608edb80, $644fc637,
$7a089632, $7ec98b85, $738aad5c, $774bb0eb,
$4f040d56, $4bc510e1, $46863638, $42472b8f,
$5c007b8a, $58c1663d, $558240e4, $51435d53,
$251d3b9e, $21dc2629, $2c9f00f0, $285e1d47,
$36194d42, $32d850f5, $3f9b762c, $3b5a6b9b,
$0315d626, $07d4cb91, $0a97ed48, $0e56f0ff,
$1011a0fa, $14d0bd4d, $19939b94, $1d528623,
$f12f560e, $f5ee4bb9, $f8ad6d60, $fc6c70d7,
$e22b20d2, $e6ea3d65, $eba91bbc, $ef68060b,
$d727bbb6, $d3e6a601, $dea580d8, $da649d6f,
$c423cd6a, $c0e2d0dd, $cda1f604, $c960ebb3,
$bd3e8d7e, $b9ff90c9, $b4bcb610, $b07daba7,
$ae3afba2, $aafbe615, $a7b8c0cc, $a379dd7b,
$9b3660c6, $9ff77d71, $92b45ba8, $9675461f,
$8832161a, $8cf30bad, $81b02d74, $857130c3,
$5d8a9099, $594b8d2e, $5408abf7, $50c9b640,
$4e8ee645, $4a4ffbf2, $470cdd2b, $43cdc09c,
$7b827d21, $7f436096, $7200464f, $76c15bf8,
$68860bfd, $6c47164a, $61043093, $65c52d24,
$119b4be9, $155a565e, $18197087, $1cd86d30,
$029f3d35, $065e2082, $0b1d065b, $0fdc1bec,
$3793a651, $3352bbe6, $3e119d3f, $3ad08088,
$2497d08d, $2056cd3a, $2d15ebe3, $29d4f654,
$c5a92679, $c1683bce, $cc2b1d17, $c8ea00a0,
$d6ad50a5, $d26c4d12, $df2f6bcb, $dbee767c,
$e3a1cbc1, $e760d676, $ea23f0af, $eee2ed18,
$f0a5bd1d, $f464a0aa, $f9278673, $fde69bc4,
$89b8fd09, $8d79e0be, $803ac667, $84fbdbd0,
$9abc8bd5, $9e7d9662, $933eb0bb, $97ffad0c,
$afb010b1, $ab710d06, $a6322bdf, $a2f33668,
$bcb4666d, $b8757bda, $b5365d03, $b1f740b4);

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

function CRC(buf:pchar;length:word):longword;
var
crc_seed:longword;
buf_offset:word;
table_offset:byte;
begin
crc_seed := $FFFFFFFF;
buf_offset := 0;
table_offset := 0;
while(buf_offset>24 or $000000FF) do begin
table_offset := table_offset xor byte(buf[buf_offset]);
inc(buf_offset);
crc_seed := (crc_seed shl 8) xor crc32_table[table_offset];
end;
result := crc_seed;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
//
end;

end.
 
重贴一遍,请高手快来救救我。。。。
我怎么修改不过来呢?
我怎么修改不过来呢?
请下载这个单元和利用vc做的程序,请高手对照一下得出的校验码是否一致,
谢谢各位高手了

<a href="http://go.163.com/~hua8hua/crc32.exe">crc32.exe</a>
 
各位高手快帮帮我。。。。。
 
我也很关心你的问题
 
多人接受答案了。
 
后退
顶部