我试过了,数据短的时候可以,但多就不对了,我就是这样的,下面是我写的DLL:
Function Read(Baud_Rate:Integer;Set_PortChar;out aDatachar):integer;StdCall;
var rdatachar; //全局变量
在Spcomm的onReceiveDat事件中:
begin
if 有数据 then
begin
... //将收到的数据换成String型
rdata:=Pchar(String)
end;
end;
Function Read(Baud_Rate:Integer;Set_PortChar;out aDatachar):integer;StdCall;
begin
...
getmem(rdate,290); //在数据短的时候可以不要,长了就要不然什么也看不到,但会出现乱码
aData:=Rdata;
end;
在程序中直接调用:
var i:integer;
i:=Read(i,P,P1);
Edit1.text:=p1;