关闭

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

943人阅读 评论(0) 收藏 举报
分类:

函数调用缺少参数列表;请使用“&****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)

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:39633次
    • 积分:865
    • 等级:
    • 排名:千里之外
    • 原创:44篇
    • 转载:21篇
    • 译文:0篇
    • 评论:8条