mfc 调用AfxBeginThread函数来起线程, 此函数中需传入另一个函数指针,这个函数指针为何不能是成员函数?

2025-04-26 14:31:21
推荐回答(2个)
回答1:

类成员函数作为另一成员函数参数的语法非常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);//使用调用函数

回答2:

This function must be declared as follows:UINT MyControllingFunction( LPVOID pParam );