반응형
온라인게임이나 메신저 프로그램, 각종 P2P 프로그램들은 프로그램 하나만 실행이 됩니다.
이와 같이 하나의 프로그램만 실행 시키는 방법은 뮤텍스(Mutex)라는 동기화 객체를 사용하는데 그 객체의 사용법을 알아봅니다.
코드 |
1. APP 헤더에 선언한다.
class Cmfc_dlg2App : public CWinApp { HANDLE m_hMutex;
2. 생성자에서 초기화한다.
Cmfc_dlg2App::Cmfc_dlg2App() { m_hMutex = NULL; }
3. InitInstance 에서 뮤텍스를 생성한다.
BOOL Cmfc_dlg2App::InitInstance() { HANDLE m_hMutex = CreateMutex(NULL,TRUE, "뮤텍스를이용한한번만실행되는윈도우"); if( GetLastError() == ERROR_ALREADY_EXISTS ) { AfxMessageBox( "이미프로그램이실행되고있습니다" ); return FALSE; }
4. ExitInstance 에서 생성된 뮤텍스를 제거한다.
int Cmfc_dlg2App::ExitInstance() { if( m_hMutex != NULL ) CloseHandle( m_hMutex );
return CWinApp::ExitInstance(); } |
반응형
'C & C++ > C & C++' 카테고리의 다른 글
CString strreplace 문자열에서 문자 변경 (0) | 2011.03.27 |
---|---|
[Tip] ',' 을 3자리마다 붙여서 통화 화폐의 문자열을 리턴 (0) | 2011.03.27 |
[Tip] 폰트의 크기 얻어오기 (0) | 2011.03.27 |
[Tip] 특정시간과 날짜에만 실행 (0) | 2011.03.27 |
C & C++ 가이드 라인(Guide Line) (0) | 2011.03.27 |
댓글