本帖最后由 jxqn_liu 于 2012-07-23 14:57:59 编辑

解决方案 »

  1.   

    frmClient.IdTCPClient.ReadBuffer(PackHead, 56);
    改为
    frmClient.IdTCPClient.ReadBuffer(PackHead^, 56);
    GetMem(PackHead, 56);这样的应该写成SizeOf(TRecPackHead),用的地方都这样写。或者干脆const x= sizeof(xxx)
      

  2.   

    你这里没必要使用var
      PackHead: PRecPackHead;
    直接在TRecvThread定义一个TRecPackHead就好,反正使用。否则自己注意getmem后freemem,运行到使用主线程中的vcl资源应该synchronize