2012-11-07 1 views
0

합니다 (지식에 대한) MFC 클래스 복제의 시리즈를 계속 여기에 CEvent 클래스 복제 오는 동안 :CEvent MFC 복제

class CEvent { 
    HANDLE m_hEvent; 
public: 

    CEvent(
     BOOL bInitialState, 
     BOOL bManualReset) 
    { 
     LPSECURITY_ATTRIBUTES lpEventAttributes = NULL; 
     m_hEvent = CreateEvent(lpEventAttributes, 
           bManualReset, 
           bInitialState, 
           NULL); 
    } 

    ~CEvent() 
    { 
     m_hEvent = NULL; 
    } 

    BOOL SetEvent() 
    { 
     return ::SetEvent(m_hEvent); 
    } 

    BOOL ResetEvent() 
    { 
     return ::ResetEvent(m_hEvent); 
    } 
    HANDLE GetHandle() 
    { 
     return m_hEvent; 
    } 
    operator HANDLE() 
    { 
     return m_hEvent; 
    } 
}; 

코드는 답을 고려하여 편집되었습니다.

+0

소멸자의 Call :: CloseHandle (m_hEvent) –

답변

1

명명 된 이벤트 _T ("제목 없음")를 생성하고 있습니다. 이거 목적이 있니? 이렇게하면 CEvent가 생성 될 때마다 동일한 이벤트를 참조하게됩니다. 새 이벤트는 생성되지 않습니다.

소멸자에서 이벤트를 파괴하는 것도 생각해보십시오.

+0

감사합니다. 정말 몰랐습니다. –

+0

귀하의 정보는 실제로 많은 문제를 해결해 주었고 설명을 찾을 수 없었습니다 .. 나는 CreateEvent 문서를 신중하게 읽지 않았 음을 인정해야합니다. 그러나 당신의 대답에 감사드립니다. –