MFC 프로그램 중복 실행 방지

 

C프로젝트명App가 있는 cpp 파일에서 해당 코드 작성


/************************ 중복 실행 체크 ************************/
// 컴파일러에게이어플리케이션의모든인스턴스들사이에서공유될수있는
// Shared 섹션을구성하고초기화된변수를삽입하도록한다.
#pragma data_seg("Shared")
volatile LONG g_lApplicationInstances = 0;
#pragma data_seg()
// 링커에게Shared 섹션을읽고, 쓰고, 공유가능한섹션으로설정할것을알려준다.
#pragma comment(linker, "/Section:Shared,RWS")
/************************ end  중복 실행 체크 ************************/

//...

BOOL C프로젝트명App::InitInstance()
{
/************************  중복 실행 체크 ************************/
if (g_lApplicationInstances > 0)
{
// g_lApplicationInstances 가0 이상이 면프로그램이이미실행중이다.
//AfxMessageBox(_T("This Program is already running."));
return FALSE;
}
else
{
// g_lApplicationInstances에1을더하여 프로그램의인스턴스가추가된것을설정한다.
InterlockedExchangeAdd(&g_lApplicationInstances, 1);
}

//기존내용

//


}

+ Recent posts