0

一連の MFC クラスの複製を (知識のある方向けに) 続けながら、ここで CEvent クラスの複製を行います。

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;
    }
};

コードは回答を考慮して編集されています。

4

1 に答える 1

1

名前付きイベント - _T("Untitled") を作成しています。これはわざとですか?このように、CEvent が作成されるたびに、同じイベントが参照されます。新しいイベントは作成されません。

デストラクタでイベントを破棄することも考えてください。

于 2012-11-07T16:48:45.990 に答える