我写了一个MFC activex控件.每次udp收到消息,就用fireevent 触发一个最简单的void test(void)事件, 但是在外面却捕捉不到这个事件.我跟踪也发现确实运行到了 fireevent.如果我写个函数直接调用这个 fireevent ,就可以.
但是如果是等待接受 udp 消息再触发,就不可以.void CUdpSocket::OnReceive(int nErrorCode)
{
unsigned char * receiveData = new BYTE[1024];
int len = 1024;
int rtc = 0;
try
{
rtc = this->Receive(receiveData, len, 0);
if (rtc == SOCKET_ERROR )
{
m_LastErrorCode = GetLastError();
}
this->m_pParent->Test();   //就是这个地方.
}
catch(...)
{
}
CAsyncSocket::OnReceive(nErrorCode);
}void Test(void)
{
FireEvent(eventidTest, EVENT_PARAM(VTS_NONE));
}