본문 바로가기
Develope/c++, mfc

[C++/MFC] 프로그램 중복 실행 방지, Mutex 사용법, CreateMutex

by 개발자도구 2023. 1. 11.
반응형

사용법

InitInstance() 시작 부문에 추가 한다. 시작 지점에서 프로그램 중복 실행 체크 후 진행 할 수 있게 한다.

 

Cpp File

HANDLE hMutex = NULL;

hMutex = CreateMutex(NULL, FALSE, _T("MUTEX_NAME"));
if (NULL == hMutex)
{
	MessageBox(NULL, _T("Mutex 생성 실패 - 프로그램을 종료합니다."), _T("PROJECT_NAME"), MB_OK);
	return FALSE;
}

if (GetLastError() == ERROR_ALREADY_EXISTS)
{
	CloseHandle(hMutex);
	hMutex = INVALID_HANDLE_VALUE;
	MessageBox(NULL, _T("프로그램이 이미 실행 중입니다."), _T("PROJECT_NAME"), MB_OK);
    return FALSE;
}

 

 

MUTEX_NAME 의 경우 GUID를 통해 만들면 다른 프로그램과 중첩 되는 경우를 없앨수 있다.
예) project_name-{GUID}
반응형

댓글