H
hhb1981
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Process(stream: TStream);
var
Buffer, p: Pointer;
B: Byte;
begin
Buffer := AllocMem(1024);
stream.Read(Buffer, 1024);
p := Buffer + 10; // <-- Error
CopyMemory(Addr(B), p, 1);
case B of
0: ...;
1: ...;
end;
FreeMem(Buffer);
end;
该段程序的目的是想把传入的stream的第十个字节取出来,然后根据该字节的内容调用其他子处理。
在编译的时候,“p := Buffer + 1;”出现了错误,内容是:“Operator not applicable to this operand type”。
我查了一下Delphi5自带的Help文档,说Delphi支持指针相加(+)的,但不知道为什么报错。。。
var
Buffer, p: Pointer;
B: Byte;
begin
Buffer := AllocMem(1024);
stream.Read(Buffer, 1024);
p := Buffer + 10; // <-- Error
CopyMemory(Addr(B), p, 1);
case B of
0: ...;
1: ...;
end;
FreeMem(Buffer);
end;
该段程序的目的是想把传入的stream的第十个字节取出来,然后根据该字节的内容调用其他子处理。
在编译的时候,“p := Buffer + 1;”出现了错误,内容是:“Operator not applicable to this operand type”。
我查了一下Delphi5自带的Help文档,说Delphi支持指针相加(+)的,但不知道为什么报错。。。