帮忙看一下这段代码异常在哪里?pchar类型的变量总是出错
帮忙看一下这段代码错误在哪里?pchar类型的变量总是出错
procedure TForm1.Button3Click(Sender: TObject);
var
instream:pchar;
outstream:pchar;
rle_code:Word;
ptr_instream:Word;
ptr_outstream:Word;
i,loopcnt:Word;
s:string;
begin
s:= ' ';
try
instream:=allocmem(p.picsize);
getmem(outstream,sizeof(outstream));
if ifopen = false then
begin
pics:=tfilestream.Create( 'GraphicEx_4.bin ',fmopenreadwrite);
ifopen:=true;
end;
pics.Position:=p.picadd+16;
pics.ReadBuffer(instream^,p.picsize);
//showmessage(inttostr(length(buf)));
{ for i:=0 to p.picsize-1 do
begin
s:=s+inttohex(word(buf[i]),2);
end;
memo2.Lines.Add(s);
//memo2.Lines.Add(string(buf)) ; }
//获取解码数据的代码开始
ptr_instream:=0;
ptr_outstream:=0;
i:=0;
loopcnt:=0;
while ptr_instream < p.picsize do
begin
//c:=instream[ptr_instream];
rle_code := Word(instream[ptr_instream]);
//rle_code:=Integer(c);
Inc(ptr_instream);
case rle_code and $f0 of
$00:
begin
loopcnt := rle_code;
for i := 0 to loopcnt - 1 do
begin
outstream[ptr_outstream] := instream[ptr_instream];
Inc(ptr_instream);
Inc(ptr_outstream);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
instream:pchar;
outstream:pchar;
rle_code:Word;
ptr_instream:Word;
ptr_outstream:Word;
i,loopcnt:Word;
s:string;
begin
s:= ' ';
try
instream:=allocmem(p.picsize);
getmem(outstream,sizeof(outstream));
if ifopen = false then
begin
pics:=tfilestream.Create( 'GraphicEx_4.bin ',fmopenreadwrite);
ifopen:=true;
end;
pics.Position:=p.picadd+16;
pics.ReadBuffer(instream^,p.picsize);
//showmessage(inttostr(length(buf)));
{ for i:=0 to p.picsize-1 do
begin
s:=s+inttohex(word(buf[i]),2);
end;
memo2.Lines.Add(s);
//memo2.Lines.Add(string(buf)) ; }
//获取解码数据的代码开始
ptr_instream:=0;
ptr_outstream:=0;
i:=0;
loopcnt:=0;
while ptr_instream < p.picsize do
begin
//c:=instream[ptr_instream];
rle_code := Word(instream[ptr_instream]);
//rle_code:=Integer(c);
Inc(ptr_instream);
case rle_code and $f0 of
$00:
begin
loopcnt := rle_code;
for i := 0 to loopcnt - 1 do
begin
outstream[ptr_outstream] := instream[ptr_instream];
Inc(ptr_instream);
Inc(ptr_outstream);
end;