繁体   English   中英

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

[英]'CObject::CObject' : cannot access private member declared in class 'CObject'

我的问题是:

Error 1 error C2248: 'CObject::CObject' : cannot access private member declared in class 'CObject' c:\\program files\\microsoft visual studio 10.0\\vc\\atlmfc\\include\\afxwin.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和每个a被复制到内部存储器中以供新线程访问。

编译器抱怨试图复制不可复制的对象。 正如Joachim Pileborg在对该问题的评论中所建议的那样 ,使用boost::ref来防止复制,而是将对参数的引用传递给它。 通过引用传递的参数在线程的生存期内必须存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM