delphi cport 应用程序,在编程环境下 run可以执行,但是一旦关闭程序(打叉)就报错: purgecomm function failed (win error code:6),如果再加一个关闭串口输出及关闭串口的事件,就报错:writefily function failed (win error code:6)
cport 报错代码段如下:
procedure TCustomComPort.AbortAllAsync;
begin
if not PurgeComm(FHandle, PURGE_TXABORT or PURGE_RXABORT) then
raise EComPort.Create(CError_PurgeFailed, GetLastError);
end;
这里报错是什么原因呢,
cport
// perform asynchronous write operation
function TCustomComPort.WriteAsync(const Buffer; Count: Integer; var AsyncPtr: PAsync): Integer;
var
Success: Boolean;
BytesTrans: DWORD;
begin
if AsyncPtr = nil then
raise EComPort.CreateNoWinCode(CError_InvalidAsync);
PrepareAsync(okWrite, Buffer, Count, AsyncPtr);
Success := WriteFile(FHandle, Buffer, Count, BytesTrans, @AsyncPtr^.Overlapped)
or (GetLastError = ERROR_IO_PENDING);
if not Success then
raise EComPort.Create(CError_WriteFailed, GetLastError);
SendSignalToLink(leTx, True);
Result := BytesTrans;
end;
delphi cport 应用程序,在编程环境下 run可以执行,但是一旦关闭程序(打叉)就报错,怎么解决啊?
答案:1 悬赏:10 手机版
解决时间 2022-01-01 00:26
- 提问者网友:美人性情
- 2021-12-31 18:38
最佳答案
- 五星知识达人网友:老鼠爱大米
- 2021-12-31 18:51
有在退出程序时,还有线程在运行。
你要结束它后,再退出程序。
你中断一下,看看。
应该是EComPort还在发送。
你要结束它后,再退出程序。
你中断一下,看看。
应该是EComPort还在发送。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯