###############大家帮忙看看了,一个MSCOmm的问题
function RecData( FMLen : Integer) : String; stdcall; export;
var
xTmp : Olevariant;
xScr : array of byte;
xStr : String;
i, j, count : Integer;
xLen, xTck : Integer;
begin
Sleep(1);
xStr := '';
xLen := 0;
xTck := GetTickCount;
repeat
Application.ProcessMessages;
if (((GetTickCount - xTck) /1000) > 3) then
begin
Result := '';
Exit;
end;
i:=xComm.InBufferCount;
Sleep(10);
i:=xComm.InBufferCount;
if i>0 then
begin
xTmp := xComm.Input;
SetLength(xScr,i);
xScr := xtmp;
for j:=0 to i-1 do
xStr := xStr +inttoHex(xScr[j],2);
end;
xLen := Length(xStr);
until (xLen = FMLen);
Result := xStr;
end;
这段代码比较不稳,时而接的到数据,时而接收不到数据,下位机是我自己写的,用调试工具测试过,没有任何问题。
各位大侠帮忙先,谢谢