我在Win2000下做了一个程序功能如下
 1.取数据库,然后串口发送字符串,
 2.串口接收字符存入数据库
 3.程序中用了一个线程到客户那里操作系统是Win98,程序运行没有问题,在退出时提示:
Access violation at address BFF8AF1F In module 'KERNEL32.DLL' write of address 0000000
请问这个问题该如何解决?

解决方案 »

  1.   

    你用win2000编译的程序内核版本太高了,不能在win98中使用,把你得程序拿到98系统里编译一下看看
      

  2.   

    推荐在主窗口的OnClose等事件中,释放资源,如关闭与串口的连接等。
      

  3.   

    需要等待线程结束,比方说你delphi封装的线程类
    1.线程类中定义FEvent:TSimpleEvent;在Execute中的加入
    FEvent.ResetEvent;
    -------你的线程代码
    FEvent.SetEvent;在你程序退出前加入
    WaitForSingleObject(AThread.FEvent.Handle) 就可以了
      

  4.   

    用户的电脑是98的,因为是硬件设备自带的机器,不能重装系统,里面有它他们工厂大型设备的操作程序,所以,只能在98下做,这个问题,现在已经没有了,因为客户电脑在前段时间拿回厂家做了升级,现在是WinXP了,谢谢大家,给分了