16,472
社区成员
发帖
与我相关
我的任务
分享
仅供参考:
dll中:
private:
void (WINAPI *FUN_OnSocketEventCallBack)(LPVOID pWnd,ISNSTCPClient *pSocket,const CString &strIP,ISNSTCPClient::SOCKET_EVENT_ID uEventID);
LPVOID m_lpSocketEventCallBackWnd;
virtual void SetSocketEventCallBack(LPVOID lpWnd,void (WINAPI *OnSocketEventCallBack)(LPVOID pWnd,ISNSTCPClient *pSocket,const CString &strIP,ISNSTCPClient::SOCKET_EVENT_ID uEventID));
void CTCPClient::SetSocketEventCallBack(LPVOID lpWnd,void (WINAPI *OnSocketEventCallBack)(LPVOID pWnd,ISNSTCPClient *pSocket,const CString &strIP,ISNSTCPClient::SOCKET_EVENT_ID uEventID))
{
FUN_OnSocketEventCallBack = OnSocketEventCallBack;
m_lpSocketEventCallBackWnd = lpWnd;
}
void CTCPClient::PostSocketEvent(const CString &strIP,ISNSTCPClient::SOCKET_EVENT_ID uEventID)
{
if(FUN_OnSocketEventCallBack)
{
FUN_OnSocketEventCallBack(m_lpSocketEventCallBackWnd,GetOwner(),strIP,uEventID);
}
}
主程序中:
CXXX::Init()
{
CTCPClient m_Cliient;
m_Cliient.SetSocketEventCallBack(this,OnSocketEventCallBack):
}
void WINAPI CXXX::OnSocketEventCallBack)(LPVOID pWnd,ISNSTCPClient *pSocket,const CString &strIP,ISNSTCPClient::SOCKET_EVENT_ID uEventID))
{
}