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

我在一个自定义类中写了一个成员函数,期望可以在新的线程中一直调用此函数,用于监听socket,但是当我把这个成员函数作为参数,传给AfxBeginThread时,编译无法... 我在一个自定义类中写了一个成员函数,期望可以在新的线程中一直调用此函数,用于监听socket,但是当我把这个成员函数作为参数,传给AfxBeginThread时,编译无法通过,说这个成员函数格式不符合,这是为什么呢?
求大虾赐教!
展开
 我来答
zhccsd
2013-10-16 · TA获得超过4042个赞
知道大有可为答主
回答量:1347
采纳率:66%
帮助的人:900万
展开全部
类成员函数作为另一成员函数参数的语法非常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);//使用调用函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
四风山
2013-10-16
知道答主
回答量:9
采纳率:0%
帮助的人:3.5万
展开全部
This function must be declared as follows:UINT MyControllingFunction( LPVOID pParam );
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式