请教各位关于用CSocket发送信息的问题,急!
我在App类里创建了一个Socket连接,pSocket为连接Socket的指针。
运行时,在App对象中使用pSocket发送信息没有问题,
比如在OnAppAbout()中,用pSocket->SendMsg( &Msg ),客户端收到了发送的信息。
但是在我自己创建的另一个类Test中虽然有同样的函数SendMsg2Socket( &Msg ),
(该函数使用App类中的pSocket指针发送信息)一调用程序就死掉了,而且在这个类的对象中调用AfxGetApp()->OnAppAbout()程序也会死。
如果在OnAppAbout()中创建一个Test的对象mytest,
再调用mytest.SendMsg2Socket( &Msg ),程序又没有问题。
App类和Test类中的SendMsg的代码完全一样,都是调用pSocket->SendMsg( &Msg )
程序出错后,走到了SockCore.cpp中的566行,代码如下:
void CAsyncSocket::AssertValid() const
{
CObject::AssertValid();
ASSERT(m_hSocket == INVALID_SOCKET || CAsyncSocket::FromHandle(m_hSocket) != NULL);//566行
}
调试发现m_hSocket的值是388(某一次),请问INVALID_SOCKET是不是0?
而且我感觉FromHandle(m_hSocket)不是空值
我自己创建的Test类不是从MFC中继承来的,而是generic类型的类,是不是这样的类不能使用CSocket对象?