public:
void MyThreadProc(void);//线程入口函数调用函数
static UINT __stdcall MyThreadFunc (LPVOID pParam);//线程入口函数
void CreateThreadProc();//创建线程函数
private:
CWinThread* m_pThread;
class.cpp
void class::MyThreadProc(void)
{
//函数实现略
}
UINT __stdcall class::MyThreadFunc(LPVOID pParam)
{
CChickenWeighingDlg* pClass = (CChickenWeighingDlg*) pParam;
pClass->MyThreadProc();
return 0;
}
void class::CreateThreadProc()
{
m_pThread = AfxBeginThread(MyThreadFunc,this,THREAD_PRIORITY_NORMAL,0,0,NULL);
m_pThread->m_bAutoDelete = FALSE;
}
问题:AfxBeginThread提示error: no instance of overloaded function "AfxBeginThread" matchse the argument list
AfxBeginThread是全局函数,而且我的实参也没错啊,是不是没有重载AfxBeginThread?当我使用全局函数CreateThreadProc时AfxBeginThread没有这个问题,怎么解决?
5 个解决方案
#1
UINT MyThreadFunc(LPVOID pParam);
全局函数
全局函数
#2
线程入口函数我使用的是类成员函数,必须是全局函数吗?
#3
AfxBeginThread(class::MyThreadFunc, ..
#4
必须的吧,你试试
#5
好像可以了。谢谢
#1
UINT MyThreadFunc(LPVOID pParam);
全局函数
全局函数
#2
线程入口函数我使用的是类成员函数,必须是全局函数吗?
#3
AfxBeginThread(class::MyThreadFunc, ..
#4
必须的吧,你试试
#5
好像可以了。谢谢