mfc 调用AfxBeginThread函数来起线程, 此函数中需传入另一个函数指针,这个函数指针为何不能是成员函数?
我在一个自定义类中写了一个成员函数,期望可以在新的线程中一直调用此函数,用于监听socket,但是当我把这个成员函数作为参数,传给AfxBeginThread时,编译无法...
我在一个自定义类中写了一个成员函数,期望可以在新的线程中一直调用此函数,用于监听socket,但是当我把这个成员函数作为参数,传给AfxBeginThread时,编译无法通过,说这个成员函数格式不符合,这是为什么呢?
求大虾赐教! 展开
求大虾赐教! 展开
2个回答
展开全部
类成员函数作为另一成员函数参数的语法非常DT,跟普通函数完全不一样
具体如下
CString GetA1(int year,int month);
CString Cxx::GetA1(int year,int month)
{
CString s;
s.Format(_T("%d年%d月"),year,month);
return s;
}
以上分别是要作为参数的函数
typedef CString (Cxx::*FunType)(int,int);
void GetRow(FunType pf=NULL);
以上是调用的函数,都写在类头文件中
void Cxx::GetRow(FunType pf)
{
MessageBox( (this->*pf)(10,20) );
}
函数的定义,注意调用pf的语法
GetRow(&Cxx::GetA1);//使用调用函数
具体如下
CString GetA1(int year,int month);
CString Cxx::GetA1(int year,int month)
{
CString s;
s.Format(_T("%d年%d月"),year,month);
return s;
}
以上分别是要作为参数的函数
typedef CString (Cxx::*FunType)(int,int);
void GetRow(FunType pf=NULL);
以上是调用的函数,都写在类头文件中
void Cxx::GetRow(FunType pf)
{
MessageBox( (this->*pf)(10,20) );
}
函数的定义,注意调用pf的语法
GetRow(&Cxx::GetA1);//使用调用函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询