最近用delphi写了一个多串口,通讯程序。串口设备有5个,是用调用api写的,程序可以正常运行一周.运行一周后程序就会报错"I/O       error       1816".一报错通讯程序就停止工作,我不得不强制手工启动程序。I/O       error       1816错误应该如何解决呢?会不会是程序内存没有释放,郁闷!!!!!           今天我仔细检查了一下程序,发现所有串口都少了一句同步事件创建       OmronEvent:=CreateEvent(nil,true,true,nil),会不会是这个原因,     再运行一周,看问题是不是解决了。另外也希望各位高手多多指点,多谢多谢!!!

解决方案 »

  1.   

    这个错误号还真没见过查查msdn看是啥错跟踪自已的程序
      

  2.   

    msdn上I/O error 1816错误信息是查到了,就是没有说处理方法,好像还说无法处理.跟踪程序也不方便,问题是程序要运行一星期才报错。要么就多加一些日志信息记录,但是加日志信息也非常麻烦。 我后来仔细检查了一下程序,加上了一些处理,看还会不会有问题。如果一星期再不报错,可能就处理好了。
      

  3.   

    怀疑是没有关闭的端口导致,导致资源被用完,看看是否每一个打开的端口再不用的时候都CloseHandle了
      

  4.   

    我使用的是控件MsComm,没有发现过你一样的问题.
      

  5.   

    我写了一个COM程序,怎么运行一段时间后,会系统死机,郁闷
      

  6.   

    建议使用CPort VCL控件,我一直在用,感觉还可以。用API,太辛苦了。