求高手看一段代码unsigned int __stdcall CServerMgr::ListenMulticastThread(LPVOID lpVoid){CServerMgr*
求高手看一段代码
unsigned int __stdcall CServerMgr::ListenMulticastThread(LPVOID lpVoid)
{
CServerMgr* lpThis = reinterpret_cast<CServerMgr*>(lpVoid);
ATLASSERT(lpThis);
if(lpThis)
{
lpThis->ListenMulticastImpl();
}
return 0;
}求高手详细解释一下这段代码
[解决办法]
这个函数的参数是一个函数指针,reinterpret_cast会将其转换成CServerMgr型指针。
如果转换成功,则调用ListenMulticastImpl函数,看名字好像是侦听一个事件。
用reinterpret_cast是为了防止,外面传进来一个恶意的指针,导致堆栈或者程序崩溃。
[解决办法]
将lpVoid转换为CServerMgr类的指针,然后调用CServerMgr类的ListenMulticastImpl方法
