永发信息网

delphi cport 应用程序,在编程环境下 run可以执行,但是一旦关闭程序(打叉)就报错,怎么解决啊?

答案:1  悬赏:10  手机版
解决时间 2022-01-01 00:26
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;
最佳答案
有在退出程序时,还有线程在运行。
你要结束它后,再退出程序。

你中断一下,看看。

应该是EComPort还在发送。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
这样的裂纹是锻件问题还是热处理问题?
下列各组中的两个项不属于同类项的是A.3x2y和
你好!51人品贷可靠吗?
想做一家没店面、只送外卖的店、大家分析分析
19世纪中期进行改革的沙皇是A.尼古拉一世B.彼
6splus充电孔脏了用拆机清理吗
大盘回暖是什么意思
我在捷信贷款了一万元,分21月还每月还842元
江门市开平市旅游局办公位置在哪啊?好找么?
品茗杯主人杯是什么意思
招行理财短信怎么取消
尚赫超音波美容仪全身减肥手法
音源输入是什么
一平方等于多少平方尺
兵役登记表上面2个空怎么填 我不想当兵
推荐资讯
如皋市统计局办公位置在哪啊?好找么?
网线测试仪怎么用
项家村委会地址在什么地方?想过去办事
王者荣耀的通用技能,这几天刚看见的,形状像
士,在中国历史上始终是一个占有重要地位的特
支付宝余额0.08可是还能买东西怎么回事
2012年上海的信息传输、计算机服务和软件业比
It’s obvious that his to the problem is
饶有趣味的意思是什么
鸿运汽车坐垫地址在什么地方,想过去办事
集美商行我想知道这个在什么地方
爱枣庄地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?