'CObject::CObject':无法访问类 'CObject' 中声明的私有成员

'CObject::CObject' : cannot access private member declared in class 'CObject'

本文关键字:CObject 成员 声明 访问      更新时间:2023-10-16

我的问题是:

Error 1 error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject' c:program filesmicrosoft visual studio 10.0vcatlmfcincludeafxwin.h 1991 1 ProcessInfo

和我的代码:

boost::thread timerThread(&CMainFunctions::TimerFunction, this, pid, TIMER_INTERVAL_MS, lstBox);

lstBox为MFC ListBox。,我的TimerFunction是:

void CMainFunctions::TimerFunction(int pid, int interval, CListBox &lstbox)

我需要做什么,编辑我的MFC表单,或者更确切地说编辑我的ListBox在我的窗体在线程?

复制提供给boost::thread构造函数的参数。从链接的参考页:

如果线程(boost::bind(f,a1,a2,…))。因此,f和每个an被复制到内部存储器中,供新线程访问。

编译器报错试图复制一个不可复制的对象。正如Joachim Pileborg对这个问题的评论所建议的那样,使用boost::ref来防止复制并传递对参数的引用。引用传递的参数必须在线程的生命周期内存在。