尝试初始化MFC CCcriticalSection时出现错误C2248
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.0vcatlmfcincludeafxmt.h(82): error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject'
c:program files (x86)microsoft visual studio 10.0vcatlmfcincludeafx.h(535) : see declaration of 'CObject::operator ='
c:program files (x86)microsoft visual studio 10.0vcatlmfcincludeafx.h(509) : see declaration of 'CObject'
This diagnostic occurred in the compiler generated function 'CSyncObject &CSyncObject::operator =(const CSyncObject &)'
我在程序中有4个工作线程,我将向它们发送指向CCcriticalSection所在类的指针,这些线程正在处理CCCriticalSection和主线程。线程使用类的指针来使用使用CCcriticalSection的CSingleLock。
供您参考,该代码还包括Direct2D,但这不应该是相关的。
如有帮助,不胜感激。
编辑:
刚刚尝试用制作一个新项目
#include <afxmt.h>
它给了我例外。这正常吗?我使用的是VC++2010 Professional。
已解决:
那里也有一个CE通风口,所以我想我也会把它变成一个指针,你知道吗。它解决了这个问题。现在有一个afxmt.h文件给了我例外。
如果您希望多个线程在一个CRITICAL_SECTION上同步,您可以共享指向同一关键节的指针,但实际上无法复制CRITICAL_SECTION。
那里也有一个CEvent,所以我想我也会把它变成一个指针,你知道吗。它解决了这个问题。现在有一个afxmt.h文件给了我例外。
相关文章:
- 尝试从基类访问受保护的构造函数时出现错误 C2248
- MVSE12中出现错误C2248,std::thread
- 错误 C2248:"std::unique_ptr<_Ty>::unique_ptr":无法访问类"std::unique_ptr<_Ty>"中声明的私有成员
- 错误 C2248:无法访问类中声明的受保护成员
- Visual Studio 2012错误C2248在STD ::线程中
- 尝试初始化MFC CCcriticalSection时出现错误C2248
- 错误C2248:无法访问类中声明的私有成员,运算符=
- 在这种情况下,如何正确使用ifstream的引用?错误C2248
- 错误 C2248:'CObject::CObject':无法访问类 'CObject' afxwin.h 中声明的私有成员
- 错误C2248,这个错误是什么?我该如何修复它
- 错误 C2248:'std::promise<_Ty>::promise':无法访问类 'std::promise<_Ty>' 中声明的私有成员
- 使用Visual Studio 2012代码分析时出现错误C2248
- 再次出现错误 C2248
- 错误 C2248:无法访问在类中声明的私有成员,编译器行为异常
- 命名空间内出现错误 C2248 友元类
- 传递 CList 变量时会出现错误 C2248:"CObject::CObject":无法访问私有成员
- 无法访问在类"QReadWriteLock"中声明的私有成员错误 1 错误 C2248:'QReadWriteLock::QReadWriteLock'
- std::无法初始化私有嵌套结构的数组(错误 C2248)
- 错误C2248:无法访问类中声明的私有成员
- 链表访问私有成员错误C2248