函数调用缺少参数列表;请使用“&****Dlg::getThread”创建指向成员的指针”--多线程函数调用

函数调用缺少参数列表;请使用“&****Dlg::getThread”创建指向成员的指针”,


面向对象编程要求线程调用的接口必须是全局函数或静态成员函数。

1.把线程函数改为静态成员函数,

2在静态成员函数里使用类的非静态成员时,需要使用具体的类对象调用。解决办法,定义一个this指针。具体如下:

在类外面定义静态类指针

static ***Dlg *p_Dlg = NULL;

在构造函数里面初始化此指针为this,然后用指针来调用已有的方法和成员变量

***Dlg::***Dlg(CWnd* pParent /*=NULL*/)  

 : CDialogEx(CMFCcodeDlg::IDD, pParent)   
{  
    p_Dlg= this;  
}  

在线程里面就可以应用 p_Dlg->的方式来调用方法和成员变量了。

3.线程函数调用,在类里面声明变量CWinThread *pThread;

4.在响应函数里面添加如下语句调用线程:

pThread=AfxBeginThread(AFX_THREADPROC(getThread),0,0,CREATE_SUSPENDED,0)

阅读更多
个人分类: MFC 多线程
上一篇在MFC中用halcon读图像,显示在主窗口和picture control中
下一篇MFC+Halcon混合编程,图像读入,显示和存储
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭