如何初始化一个静态的CRITICAL_SECTION 某个类有一个静态的CRITICAL_SECTION成员如何初始化? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 InitializeCriticalSection(CRITICAL_SECTION); 1.类自己管理对象的使用计数..H:class CTestClass{static CRITICAL_SECTION m_cs ;static int m_nInitCs ;public:CTestClass() { if( !m_bInitCs ){ ::InitializeCriticalSection( &CTestClass::m_cs ) ; ++m_nInitCs ;}virtual ~CTestClass() { if( m_bInitCs ) { ::DeleteCritcalSection( &CTestClass::m_cs ) ;--m_nInitCs ; }} ;.CPP:CRITICAL_SECTION CTestClass::m_cs ;int CTest::m_bInitCs = 0 ;2.在使用该类的对象之前进行初使化,如BOOL CYourApp::InitInstance() {::InitializeCriticalSection( &CTestClass::m_cs ) ;//..omitted} ;BOOL CYourApp::ExitInstance() {::DeleteCriticalSection( &CTestClass::m_cs ) ;//..omitted}.Hclass CTestClass{static CRITICAL_SECTION m_cs ;//..omitted};.CPPCRITICAL_SECTION CTestClass::m_cs ; 更正:virtual ~CTestClass() { if( !--m_bInitCs ) { ::DeleteCritcalSection( &CTestClass::m_cs ) ; }} ;CTestClass() {if( !m_bInitCs++ ) { ::InitializeCriticalSection( CTestClass::m_cs ) ; }}多线程情况下可用InerlockedIncrement,InterlockedDecrement进行递增/递减操作. 在类声明中加入: CRITICAL_SECTION m_ce;在构造函数里加入: InitializeCriticalSection( &m_ce );在析构函数里加入: DeleteCriticalSection( &m_ce );在调用的时候: EnterCriticalSection( &m_ce );……………………………… LeaveCriticalSection( &m_ce );就可以了 SDI窗体,窗体间的切换 关于DirectSound播放问题 用peid看了下,vc6竟然是vc6开发的,难道可以自已开发自已吗? RAS&VPN 自动拨号 想在程序中調用外部的程序 请教各位大哥:VC下ADO编程(主键、添加) 创建自己的窗口类。 有关char类型数组 ? (在线等待) TranslateTransform怎么设置不了旋转中心啊,感觉总是出现偏移 关于显示动画的ActiveX控件 常指针??? 期末考试终于考完了,高兴啊!!!为什么我只能给100分啊???
.H:
class CTestClass
{
static CRITICAL_SECTION m_cs ;
static int m_nInitCs ;
public:
CTestClass() { if( !m_bInitCs ){ ::InitializeCriticalSection( &CTestClass::m_cs ) ; ++m_nInitCs ;}
virtual ~CTestClass() { if( m_bInitCs ) { ::DeleteCritcalSection( &CTestClass::m_cs ) ;
--m_nInitCs ; }
} ;
.CPP:
CRITICAL_SECTION CTestClass::m_cs ;
int CTest::m_bInitCs = 0 ;2.在使用该类的对象之前进行初使化,如
BOOL CYourApp::InitInstance() {
::InitializeCriticalSection( &CTestClass::m_cs ) ;
//..omitted
} ;
BOOL CYourApp::ExitInstance() {
::DeleteCriticalSection( &CTestClass::m_cs ) ;
//..omitted
}.H
class CTestClass
{
static CRITICAL_SECTION m_cs ;
//..omitted
};
.CPP
CRITICAL_SECTION CTestClass::m_cs ;
virtual ~CTestClass()
{
if( !--m_bInitCs ) { ::DeleteCritcalSection( &CTestClass::m_cs ) ; }
} ;
CTestClass() {
if( !m_bInitCs++ ) { ::InitializeCriticalSection( CTestClass::m_cs ) ; }
}
多线程情况下可用InerlockedIncrement,InterlockedDecrement进行递增/递减操作.
CRITICAL_SECTION m_ce;
在构造函数里加入:
InitializeCriticalSection( &m_ce );
在析构函数里加入:
DeleteCriticalSection( &m_ce );
在调用的时候:
EnterCriticalSection( &m_ce );
……
……
……
……
……
……
LeaveCriticalSection( &m_ce );就可以了