[英]Getting error C2248 while trying to initialize MFC CCriticalSection
我一直在試圖解決/找到一個小時的解決方案。 基本上我有:
CCriticalSection pCS;
在類聲明中,然后使用CSingleLock:
CSingleLock pSL(&pCS);
pSL.Lock();
*Stuff happening here*
pSL.Unlock();
鎖定和解鎖pCS。 但是初始化CriticalSection似乎總是這樣:
c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxmt.h(82): error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'
c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(535) : see declaration of 'CObject::operator ='
c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afx.h(509) : see declaration of 'CObject'
This diagnostic occurred in the compiler generated function 'CSyncObject &CSyncObject::operator =(const CSyncObject &)'
我在程序中有4個工作線程,並且向他們發送指向CCriticalSection所在類的指針,並且這些線程正在CCriticalSection以及主線程上工作。 線程使用類的指針來使用使用CCriticalSection的CSingleLock。
供您參考,該代碼還包括Direct2D,但這不相關。
一些幫助,將不勝感激。
編輯:
剛嘗試用以下方法創建一個新項目:
#include <afxmt.h>
在里面。 它給了我例外。 那是正常的嗎? 我正在使用VC ++ 2010 Professional。
解決了:
那里也有一個CEvent,所以我想我也應該把它變成一個指針,你知道嗎。 它解決了這個問題。 現在有一個afxmt.h文件給了我例外。
如果您希望多個線程在CRITICAL_SECTION上同步,則可以共享指向同一關鍵節的指針,但實際上不能復制CRITICAL_SECTION。
那里也有一個CEvent,所以我想我也應該把它變成一個指針,你知道嗎。 它解決了這個問題。 現在有一個afxmt.h文件給了我例外。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.