블로그 이미지
훅크선장

카테고리

분류 전체보기 (362)
사진이야기 (23)
펭귄컴퓨팅 (121)
컴퓨터보안 (84)
절름발이 프로그래머 (59)
하드웨어개조 (23)
멀알려줄까 (35)
홈베이킹&홈쿠킹 (2)
잡다한것들 (15)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

태그목록

최근에 올라온 글

Visual C++에서는  UNIX에서 제공하는 getopt() 함수가 없습니다.

그런 경우, 간단하게 인자 처리를 하고 싶으면 다음과 같이 합니다.

 char *pszFolder;
 char *pszDLLName;
 bool bUninstall;

 int arg = 1;
 for (; arg < argc && (argv[arg][0] == '-' || argv[arg][0] == '/'); arg++) 
 {
  CHAR *argn = argv[arg] + 1;
  CHAR *argp = argn;
  while (*argp && *argp != ':')
   argp++;
  if (*argp == ':')
   *argp++ = '\0';

  switch (argn[0]) {
  case 'd':                                     // 설치 폴더
  case 'D':
   pszFolder = argp;
   break;

  case 'f':                                     // dll 이름
  case 'F':
   pszDllName = argp;
   break;

  case 'u':
  case 'U':
   bUninstall = TRUE; 
//    RemoveRasAdmin(); 
//    return 0; 
   break; 

  default:
   printf("%s Bad argument: %s\n", argv[0], argv[arg]);
//   Usage( argv[0] ); 
   break;
  }
 }

argp 가 실제 처리된 인자입니다. (당근, 문자열이죠.)

인자사용은
프로그램명   -d:/abc/efg/  -f:who.dll  -u

원본 getopt와는 다르게, 옵션문자뒤에 세미콜론 : 이 있어야합니다. 주의~.
Posted by 훅크선장
, |