今天花了好长时间调试的一个低级问题:
class CAsyncSocket
{
public:
......
bool connect();
void OnConnect();
void OnReceive();
}
class A
{
public:
......
static DWORD WINAPI thread(LPVOID);
void new_connect();
CAsyncSocket* m_socket;
}
void A::new_connect()
{
if(m_socket==NULL)
{
m_socket = new CAsyncSocket();
m_socket->connect();
}
}
DWORD WINAPI A::thread(LPVOID pt)
{
(A)pt->new_connect(); //这边调用类里的函数初始化网络并连接,
//因为CAsYncSocket为消息事件方式,需要加入消息循环才能正常工作
//线程里加入消息循环 --------------
MSG msg;
while (GetMessage(&msg, 0, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//-------------------
return 0;
}