www.pudn.com > PC_final.rar > PCDlg.h
// PCDlg.h : header file // #if !defined(AFX_PCDLG_H__CB45B1B6_9D90_44A8_B8DB_A0CFA3991F1C__INCLUDED_) #define AFX_PCDLG_H__CB45B1B6_9D90_44A8_B8DB_A0CFA3991F1C__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include "global.h" #include#include "ProducerThread.h" #include "ConsumerThread.h" ///////////////////////////////////////////////////////////////////////////// // CPCDlg dialog //##ModelId=4859530303A9 class CPCDlg : public CDialog { // Construction public: //##ModelId=4859530303BA CPCDlg(CWnd* pParent = NULL); // standard constructor //##ModelId=4859530303BC HANDLE m_hFullSemaphore[SIZE_OF_BUFFER]; //当缓冲区满时迫使生产者等待 //##ModelId=4859530303C8 HANDLE m_hEmptySemaphore[SIZE_OF_BUFFER]; //当缓冲区空时迫使消费者等待 //##ModelId=4859530303C9 int m_Array[SIZE_OF_BUFFER]; //定义大小为SIZE_OF_BUFFER区域(仓库) //##ModelId=4859530303CA int m_CArray[SIZE_OF_BUFFER]; //定义消费者正在消费的区域 //##ModelId=4859530303D8 int m_PArray[SIZE_OF_BUFFER]; //定义生产者正在生产的区域 //##ModelId=4859530303D9 CString m_PStr[SIZE_OF_BUFFER]; //用于记录生产者的名称(程序中用P0,P1等来表示) //##ModelId=4859530303DA CString m_CStr[SIZE_OF_BUFFER]; //用于记录消费者的名称(程序中用C0,C1等来表示) //##ModelId=4859530303DB bool m_continue ; //控制程序结束 //##ModelId=485953040001 CProducerThread* m_PT[MAX_PRODUCER]; //生产者线程的数组 //##ModelId=485953040010 CConsumerThread* m_CT[MAX_CONSUMER]; //消费者线程的数组 // Dialog Data //{{AFX_DATA(CPCDlg) enum { IDD = IDD_PC_DIALOG }; //##ModelId=485953040015 CButton m_sp; //##ModelId=485953040020 CButton m_sc; //##ModelId=485953040025 CButton m_pmanual; //##ModelId=48595304002F CButton m_cmanual; //##ModelId=485953040033 UINT m_nc; //##ModelId=48595304003E UINT m_np; //##ModelId=48595304003F CString m_note; //##ModelId=485953040040 CString m_pnote; //}}AFX_DATA // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CPCDlg) protected: //##ModelId=48595304004E virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support //}}AFX_VIRTUAL // Implementation protected: //##ModelId=485953040051 HICON m_hIcon; // Generated message map functions //{{AFX_MSG(CPCDlg) //##ModelId=48595304005D virtual BOOL OnInitDialog(); //##ModelId=48595304005F afx_msg void OnSysCommand(UINT nID, LPARAM lParam); //##ModelId=48595304006F afx_msg void OnPaint(); //##ModelId=48595304007D afx_msg HCURSOR OnQueryDragIcon(); //##ModelId=48595304007F afx_msg void OnStop(); //##ModelId=485953040081 afx_msg void OnPstar(); //##ModelId=48595304008C afx_msg void OnStartc(); //##ModelId=48595304008E afx_msg void OnTimer(UINT nIDEvent); //##ModelId=485953040091 afx_msg void OnRefresh(); //##ModelId=48595304009C afx_msg void OnCmanual(); //##ModelId=48595304009E afx_msg void OnPmanual(); //##ModelId=4859530400A0 afx_msg void OnExit(); //##ModelId=4859530400AB afx_msg void OnChangeP(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_PCDLG_H__CB45B1B6_9D90_44A8_B8DB_A0CFA3991F1C__INCLUDED_)