1. 단일문서 기반의 프로젝트 생성(Duplex)

 

2. Duplex.h파일(어플리케이션 클래스)에 핸들을 받을 수 있는 변수 선언

-중복실행을 방지하기 위한 것이므로, 실행되기 전에 체크하여 실행되는것 자체를 취소시키기 위해 어플리케이션 클래스에 선언함

class CDuplexApp : public CWinApp
{
public:
     CDuplexApp();
     //CEvent m_Event;
     HANDLE m_hDupCheck; // 핸들을 받을 수 있는 변수 선언

 

3. 어플리케이션클래스(Duplex.cpp)의 InitInstance()함수에 중복실행을 방지하기 위한 코드 작성

아무것도 실행할 필요가 없으므로 바로 비교하고 종료될 수 있도록 맨 위쪽에 코드를 작성해 준다.

 

BOOL CDuplexApp::InitInstance()
{
     ::CreateEvent(NULL, FALSE, FALSE, TEXT("DUPCHECK_THISAPP_EVENT"));
     if (::GetLastError()==ERROR_ALREADY_EXISTS)
     {
          AfxMessageBox(_T("ERROR : Application is already running!"));
          return FALSE; // InitInstance함수가 실행되지 않고 빠져나온다. 이 프로그램은 메모리에 올라가지 않는다.
     }

.

.

.

.

.

 


'PROGRAMMING > MFC(C++)' 카테고리의 다른 글

[0425수업] ClipBoard  (0) 2011.04.25
[0422수업] IPC통신  (0) 2011.04.22
[0421수업] 소프트웨어 업데이트  (0) 2011.04.21
[0421수업] 세마포어  (0) 2011.04.21
[0418수업] ThreadCrash(Critical Section, 뮤텍스)  (0) 2011.04.18
Posted by 마마필로 :