J
JohnsonGuo
Unregistered / Unconfirmed
GUEST, unregistred user!
原因这出在receive_data没有分配内存!
receive_data只是一个指针,你在没有分配内存的情况下使用他,已经相当的危险。
当退出该事件处理过程时,receive_data是一个局部变量,Delphi会释放其内存。因而错误。
建议改动如下:
procedure Tic_user_chongzhi.Button4Click(Sender: TObject);
var
receive_datachar;
begin
[red]GetMem(receive_data, 256);//256是一个足够以读入数据的最小数值
try[/red]
//学号
st:=IC_Read(mainform.icdev,33,20,receive_data);
if st=0 then
begin
receive_data[20]:=#0;
edit11.text:=strpas(receive_data);
end;
...
//挂失标志
st:=IC_Read(mainform.icdev,155,10,receive_data);
if st=0 then
begin
receive_data[10]:=#0;
edit17.text:=strpas(receive_data)+'次';
end;
// edit2.SetFocus;
// button3.Enabled:=true;
[red]finally
FreeMem(receive_data);
end;[/red]
end;
receive_data只是一个指针,你在没有分配内存的情况下使用他,已经相当的危险。
当退出该事件处理过程时,receive_data是一个局部变量,Delphi会释放其内存。因而错误。
建议改动如下:
procedure Tic_user_chongzhi.Button4Click(Sender: TObject);
var
receive_datachar;
begin
[red]GetMem(receive_data, 256);//256是一个足够以读入数据的最小数值
try[/red]
//学号
st:=IC_Read(mainform.icdev,33,20,receive_data);
if st=0 then
begin
receive_data[20]:=#0;
edit11.text:=strpas(receive_data);
end;
...
//挂失标志
st:=IC_Read(mainform.icdev,155,10,receive_data);
if st=0 then
begin
receive_data[10]:=#0;
edit17.text:=strpas(receive_data)+'次';
end;
// edit2.SetFocus;
// button3.Enabled:=true;
[red]finally
FreeMem(receive_data);
end;[/red]
end;