关于使用CCriticalSection的问题

lifeforu 2006-06-28 12:32:42
接上,问题依然没有解决,又发现新的问题。
见http://community.csdn.net/Expert/topic/4817/4817114.xml?temp=.275448
在网上找了一些,居然没有发现和我同样的问题:
前面我所说的在非动态库程序中使用这些代码可正常运行,没想到在一个新的程序中使用的时候又出现了问题,问题在于:
static CCriticalSection m_cs;//这样一个静态成员变量就好像没有被初始化一样,或者说是::initializeCriticalsection()这个函数在初始化CCriticalSection的成员变量的时候失败,具体表现在m_cs.DebugInfo == 0;此时使用CSingleLock失败。

不知道何解?居然在网上没找到一个同样的错误,看来非得弃用这些用API?
...全文
295 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DentistryDoctor 2006-06-29
  • 打赏
  • 举报
回复
声明的方式都没问题。可能是因为同步的问题造成的。
francsescoli 2006-06-28
  • 打赏
  • 举报
回复
对啊,static的变量,需要在cpp文件中初始化.
CCriticalSection myclass::m_cs;
然后使用。
hamimelon 2006-06-28
  • 打赏
  • 举报
回复
不要在CThread的构造函数中启动线程!!!!!!
pomelowu 2006-06-28
  • 打赏
  • 举报
回复
是不是只声明了没有定义?

.h文件里声明:
class myclass
{
static CCriticalSection m_cs;
}

.cpp文件里实现一下,不然会出错:
CCriticalSection myclass::m_cs = NULL;
lifeforu 2006-06-28
  • 打赏
  • 举报
回复
是的。
pomelowu 2006-06-28
  • 打赏
  • 举报
回复
static CCriticalSection m_cs;

你定义的静态类成员?

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧