게시판 검색해보니 중복방지 하기위해서는 아래와 같이 처리해서 사용합니다.
ReleaseMutex(mutex); // return 라인 바로 위에서 뮤텍스 해제
제가 작성한 프로그램중에 위의 ReleaseMutex 부분을 사용하지 않았습니다.
기본적으로 프로그램이 실행되어 있을 때는 중복실행되지 않는데
간혹 이중실행되는 경우가 있는데 ReleaseMutex(mutex);를 사용하지 않으면
이중실행 될 수도 있나요?
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
HANDLE mutex; // 변수선언
try
{
// 여기부터
const char ProgMutex[] = "Test Program";
Mutex = OpenMutex(MUTEX_ALL_ACCESS, false, ProgMutex);
if(!Mutex) Mutex = CreateMutex(NULL, true, ProgMutex);
else return 0;
// 여기까지
Application->Initialize();
Application->MainFormOnTaskBar = true;
// 중간 생략
ReleaseMutex(mutex); // return 라인 바로 위에서 뮤텍스 해제
return 0;
} |