CPort 컴퍼넌트사용할때 USBTo232포트를 제거하는 경우 "PurgeComm function failed(Error:22)" 에러가 발생합니다.
Component CPort.PAS 파일에서 아래와 같이 예외처리를 추가 해주면 오류를 해결할수 있습니다.
원본:
procedure TCustomComPort.AbortAllAsync;
begin
try
if not PurgeComm(FHandle, PURGE_TXABORT or PURGE_RXABORT) then
//raise EComPort.Create
CallException(CError_PurgeFailed, GetLastError);
end;
수정:
procedure TCustomComPort.AbortAllAsync;
begin
try
if not PurgeComm(FHandle, PURGE_TXABORT or PURGE_RXABORT) then
//raise EComPort.Create
CallException(CError_PurgeFailed, GetLastError);
except on E: Exception do
Application.ProcessMessages;
end;
end;