2013-04-30 52 views
0

我的問題是:'的CObject :: CObject的':不能訪問類中聲明私有成員 '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列表框,我的TimerFunction是:

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

我需要做什麼,編輯我的MFC窗體或r ather在線程中編輯我的表單中的ListBox?

+2

您是否嘗試過將列表框例如'的boost :: REF(lstBox)'? – 2013-04-30 08:11:11

+0

這對我有幫助。非常感謝) – EXTRAM 2013-04-30 08:15:49

回答

1

複製提供給boost::thread構造函數的參數。從鏈接的參考頁面:

如同線程(boost :: bind(f,a1,a2,...))。 因此,f和每個an都被複制到內部存儲器中供新線程訪問。

編譯器抱怨試圖複製不可複製的對象。正如Joachim Pileborg對該問題的評論所暗示的那樣,使用boost::ref來防止複製並將參數傳遞給參數。通過引用傳遞的參數必須存在於線程的生命週期中。

相關問題