2009-06-05 7 views
3

Je voudrais ajouter une interface de ligne de commande à mon application MFC afin que je puisse fournir des paramètres de ligne de commande. Ces paramètres configureraient le démarrage de l'application.Interfaçage MFC et ligne de commande

Cependant, je ne peux pas comprendre comment interfacer ces deux. Comment pourrais-je faire cela, si c'est possible?

Répondre

2

Voilà comment je le fais dans les applications MFC:

int option1_value; 
BOOL option2_value; 

if (m_lpCmdLine[0] != '\0') 
{ 
    // parse each command line token 
    char seps[] = " "; // spaces 
    char *token; 
    char *p; 
    token = strtok(m_lpCmdLine, seps); // establish first token    
    while (token != NULL) 
    { 
      // check the option 
      do // block to break out of   
      { 
       if ((p = strstr(strupr(token),"/OPTION1:")) != NULL) 
       { 
        sscanf(p + 9,"%d", &option1_value); 
        break; 
       } 

       if ((p = strstr(strupr(token),"/OPTION2")) != NULL) 
       { 
        option2_value = TRUE; 
        break; 
       } 
      } 
      while(0); 

      token = strtok(NULL, seps);  // get next token   
    } 
} // end command line not empty 
+0

Très belle solution! Aussi, bienvenue à Stack Overflow! – samoz

0

Les trucs de CCommandLineInfo est vraiment pénible à utiliser. Dans l'ordre croissant de bloat, je recommande d'utiliser TCALP (Templarzed C++ Command Line Parser http://tclap.sourceforge.net/manual.html) ou booster program_options (http://www.boost.org/doc/libs/1_48_0/doc/html/program_options.html) Vous pouvez également utiliser ces bibliothèques dans d'autres applications C++ non-MFC, et même sur d'autres systèmes d'exploitation. TCLAP peut être configuré pour prendre en charge les paramètres de type Windows, c'est-à-dire commençant par un "/" au lieu de POSIX commençant par "-" (http://tclap.sourceforge.net/manual.html#CHANGING_STARTSTRINGS)