move(buffer,a,sizeof(buffer));
这句在编译时可以通过,但是执行时,会出错!
我的代码完整如下:(是一个串口接受程序)
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
a:array of char;
i:integer;
begin
setlength(a,sizeof(buffer));
move(buffer,a,sizeof(buffer)); //这一句在串口有数据时出错。还有没有别的办法?
for i:=0 to sizeof(buffer) do
inttohex(ord(a),2)
end;
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
a:array of char;
i:integer;
begin
setlength(a,BufferLength);
move(buffer^,a[],BufferLength);
for i:=0 to BufferLength-1 do
richedit1.text:=richedit1.text+inttohex(ord(a),2);
end;
可不可以这样
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
bufferointer;
tt: pchar;
i:integer;
begin
tt:=buffer;
for i:=0 to bufferlength-1 do
richedit1.text:=richedit1.text+inttohex(ord(tt),2);
end;