본문 바로가기
Programming/C++

[MFC] 명령줄 인자, Argument 받아서 프로그램 실행하기

by MVP 2021. 3. 22.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
BOOL CTestDlg::OnInitDialog()
{
    CDialog::OnInitDialog();
    m_bExecuteByCmd = 0;
 
    CString strArgs;
    CWinApp *App = AfxGetApp();
    strArgs = App->m_lpCmdLine;
    strArgs.MakeLower();
    strArgs.TrimLeft();strArgs.TrimRight();
    if(strArgs == "-viewer"){
        m_bExecuteByCmd = 1;
        m_nViewer_Mode = 1;
    }
}
cs

 

위 코드는 Argument를 받아서 프로그램을 실행할 수 있게 하는 아주 간단한 코드 예제이다.

여기서 꼭 필요한 코드는

    CString strArgs;

    CWinApp *App = AfxGetApp();

    strArgs = App->m_lpCmdLine;

만 보면 되며, 이 인자값(strArgs)에 따라 전혀 다른 실행 결과를 만드는 프로그램을 만들 수 있다.

예를 들어 .bat, .cmd 파일에서

start "" "Test.exe" -viewer 

와 같은 내용을 입력 및 저장하고 해당 파일을 실행하면 -viewer 라는 명령줄 인자가 strArgs에 저장되게 된다.

이 인자값이 주어졌을 때 그냥 일반 프로그램이 아니라 뷰어 프로그램이 실행되도록 할 수 있게 되는 것이다.

 

또는 프로젝트 속성 -> 구성 속성 -> 디버깅 -> 명령 인수에 -viewer를 입력하고 디버깅해도 된다.