SendMsg()
{
          int i;
(*ArOut) << SMsg.Flag;
(*ArOut) << SMsg.Len;
for (i=0; i<SMsg.Len; i++)  (*ArOut) << SMsg.Buff[i];
ArOut->Flush();
}
运行到flush时,出错并提示:
Debug Assertion Failed!
查看一下,发现问题出现在:
ASSERT(m_hSocket==INVALID_SOCKET||CAsyncSocket::FromHandle(m_hSocket)!=NULL);
请问这是怎么回事?

解决方案 »

  1.   

    你的ArOut没有创建成功,m_hSocket是无效的
      

  2.   

    ASSERT是个断言宏,如果它里面的东西有问题,将会弹出系统提示。
      

  3.   

    你的m_hSocket 有没有创建,单步调试
      

  4.   

    我觉得是m_hSocket这个东西正在使用,还没有释放。
      

  5.   

    我觉得是m_hSocket 没有完全释放,要释放后使用。
      

  6.   

    是这样的,我在对话框架下调用Socket,接收发送都没问题,但还有一个工作线程,在线程中调用框架的函数来发送时就出现了上述问题。没有完全释放是什么意思,我怎么查看?
      

  7.   

    ASSERT(m_hSocket==INVALID_SOCKET)的断言应该是m_hSocket无效才行。“对话框架下调用Socket,接收发送都没问题,但还有一个工作线程,在线程中调用框架的函数来发送时就出现了上述问题”线程问题就不清楚了。