請問各位大神,DELPHI XE 10.4串口通信用什么控制元件?
我用SPCOMM 3.1,串口可以接收到資料,但發送不了資料。發送時正常回傳,不報錯,就是沒有發送資料。
發送代碼:
S: AnsiString;
S := mmoSend.text;
FComm.WriteCommData(@S[1], length(S));
SPCOMM控制元件中實作部分:
function TComm.WriteCommData( pDataToWrite: PChar; dwSizeofDataToWrite: Word ): Boolean;
var
Buffer: Pointer;
begin
if (WriteThread <> nil) and (dwSizeofDataToWrite <> 0) then
begin
Buffer := Pointer(LocalAlloc( LPTR, dwSizeofDataToWrite+1 ));
Move( pDataToWrite^, Buffer^, dwSizeofDataToWrite );
FSendDataEmpty := False;
if PostThreadMessage( WriteThread.ThreadID, PWM_COMMWRITE,
WPARAM(dwSizeofDataToWrite), LPARAM(Buffer) ) then
begin
Result := True;
Exit
end
end;
Result := False
end;
uj5u.com熱心網友回復:
不是在盒子發帖了嗎?
function TComm.WriteCommData( pDataToWrite: PChar; dwSizeofDataToWrite: Word ): Boolean;
這里引數是Pchar,你傳的是AnsiSting,這個不對
S: AnsiString;=》S:String;
uj5u.com熱心網友回復:
FComm.WriteCommData(@S[1], length(S));不用這樣寫,直接PChar(S).
uj5u.com熱心網友回復:
還是不能發送資料:試了下面這種方式:
var
s:string;
呼叫:
FComm.WriteCommData(PChar(S)., length(S));
不報錯,但沒有發送資料。
還試了:
var
P:pchar;
P:='abc';
FComm.WriteCommData(P, length(P));
同樣不報錯,但沒有發送資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268321.html
標籤:網絡通信/分布式開發
下一篇:Delphi 熱敏列印機(小票)
