这是dll的函数,在pb中循环调用,第一次正常,以后怎么就不行呢
int __stdcall SendMsg(const char* a, char b[256])
{
CAsyncSocket* psock = new CAsyncSocket;  psock->Create();  if(psock->Connect(a, 2004) == 0)
  {
    DWORD dwErr = GetLastError();
  }
    
  /////////////////// 发送消息  psock->Send(b, strlen(b));  psock->Close();  delete psock;
  psock = NULL;
  return 1;
}

解决方案 »

  1.   

    可能是数据没发送完,socket 就删除了
    可是怎么判断数据已经发送完了呢
      

  2.   

    我在send中加了判断代码,
    判断返回值,
    返回值事发送的字符数,
    当返回值等于真正的字符数目时将socket关闭,
    可是编译成dll后还是不行,并且我如果在vc中连续点几次发送按钮,
    也没问题呀
      

  3.   

    delete psock;   有问题吧
      

  4.   

    我顶,在VC中如何定义DLL函数,在PB中使用