일반 MFC에서 보통 c/c++프로그램 처럼 인자를 넘겨주면서 실행되는 방법.
2003.05.27 17:25
c/c++ 에서 main(int argc, char* argv[]) 처럼 메인함수를 정의하면 프로그램 실행할 때 인자를 넘겨줄 수 있다
인자 수는 argc
인자 값은 argv 에 저장된다.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
if (argc == 1) {
printf("인자를 입력해 주세요\r\n");
}
else
{
printf("입력된 인자수 : %d 개\r\n", argc - 1);
for (int i = 1; i < argc; i++)
printf("%d 번째 인자 = %s\r\n", i, argv[i]);
}
return 0;
}
MFC 에서는 몇가지 방법이 있다.
1.
App에 있는 InitInstance 함수를 찾아 보면
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
이런 부분이 있는데.
CCommandLineInfo 객체를 이용해서 실행시 전달받은 아규먼트를 받을수 있다.
ParseCommandLine을 호출하게 되면 m_lpCmdLine 에 아규먼트 값이 담기게 된다.
2.
ParseCommandLine 대신에 GetCommandLine() 이라는 함수를 사용
3. 전역변수로 선언된 __argc, __argv 를 이용하는 방법
기타)
윈도우 탐색기에서 *.doc 파일을 더블클릭하게 되면 MS-Word 가 실행되고
*.hwp 파일을 더블클릭하게 되면 한글이 실행되는데,
이때 연결되는 파일의 정보는 m_lpCmdLine에 담기게 된다.
<예제>
BOOL CacceptfileApp::InitInstance(){
// .......... 중략.............
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
AfxMessageBox("이 파일을 열겠다.");
AfxMessageBox(m_lpCmdLine);
}
- [2013/06/20] 5명의 키를 읽어 들여 가장 큰 키와 작은 키를 구하는 프로그램을 작성하시오 (12064) *1
- [2013/06/20] 배열 문제인데요 ㅠㅠ (10800) *1
- [2013/05/29] 도구바, OrCAD Capture (4184)
- [2013/05/10] C언어 문제좀 풀어주세요~ (7510) *1
- [2013/04/25] AVR ATmega 128로 인터럽트를 이용한 LED를 점멸하는 방법 좀 알려주세요. (11403) *3
- [2012/11/13] ZEO 모듈이란? (6394)
- [2011/11/09] 난수 발생 srand() rand() ()
- [2011/05/07] 문자열로 다이아몬드 모양 만들기 소스 (18547)
- [2011/03/24] 소수점(float,double) 있는 십진수를 이진수로 변환 (24264)
- [2011/03/23] C++, scanf 에서 float ,double사용하기 (30681) *2