DWORD WINAPI Fun(LPVOID lpParamter)
{
AfxMessageBox("线程启动");
while(1)
{
mm=Serial_Recv(handle111,recvbuff,sizeof(recvbuff));
if(mm!=0)
{
CMainFrame *pMain;
pMain->panduan(mm);
}
}
return 0L;
}
void CMainFrame:: panduan(int mm)
{ if(recvbuff[0]==0x03)
{ AfxMessageBox("接收到串口数据,弹出对话框");
Onve();
}
}
上述函数编译没问题,但是收到数据包后出现0XC000005的错误,Onve()是用来右下角弹出对话框的,属于CMainFrame的成员函数。请问上述调用方式有问题吗?求解!谢谢大神们,初学VC
你把panduan作为回调函数?不能用成员函数作为回调函数,应该定义成静态的。
已经在类中定义了static panduan()
改成DWORD WINAPI Fun(LPVOID lpParamter)
{
AfxMessageBox("线程启动");
while(1)
{
mm=Serial_Recv(handle111,recvbuff,sizeof(recvbuff));
if(mm!=0)
{
CMainFrame::panduan(mm);
}
}
return 0L;
}
void CMainFrame:: panduan(int mm)
{ if(recvbuff[0]==0x03)
{ AfxMessageBox("接收到串口数据,弹出对话框");
Onve();
}
}
编译报错error C2352: 'CMainFrame::Onve' : illegal call of non-static member function
Onve()是类的成员函数啊,怎么回事呢