0

我的问题是:

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 线程?

4

1 回答 1

1

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

好像线程(升压::绑定(f,a1,a2,...))。因此,f 和每个 an 都被复制到内部存储器中,以供新线程访问。

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

于 2013-04-30T08:16:08.217 回答