Recuperation de argc et argv dans une applic graphique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 663 fois - Téléchargée 35 fois

Contenu du snippet

Voici cmt on peut récupérer les paramètres passés au prog dans une applic graphique avec VC++ 6.0

Source / Exemple :


// à l'endroit où on en a besoin:
CString Argu = AfxGetApp()->m_lpCmdLine;
Argu.TrimLeft();
char* argument[50];
char* p, *pArg = Argu.LockBuffer();
p=strtok(pArg," ");
argument[0]="e";
int i=1;
while(p)
{
argument[i]=p;
i++;
p=strtok(NULL," ");
}

__argc = i;
__argv = argument;

Argu.ReleaseBuffer();

// utiliser __argc et __argv à partir d'ici est possible
// exemple:
orb = CORBA::ORB_init(__argc,__argv);
// pour ceux qui connaissent CORBA

// Il faut aussi mettre l ligne suivante en commentaire:
ParseCommandLine(cmdInfo);
// Elle est dans la fct CNOMDELAPPLICApp::InitInstance()
// dans le fichier NOMDELAPPLIC.cpp

Conclusion :


J'espère que j'ai rien oublié
Développé pour une applic CORBA mais ca doit aller pour toute application graphique
Ajouter un commentaire Commentaire
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006

- Dans le cas où je ne passe pas d'arguments au programme, ton __argc sera à 1 et __argv[0] contiendra un "e". Normallement, argv[0] devrait contenir le chemin vers l'exécutable si tu veux rester "standard", sinon mets ton __argc à 0.

- Ensuite, tu découpes la chaine de caractères en utilisant le caractère espace comme séparateur. Qu'est ce que donne ton programme si je passe l'argument suivant: "C:Documents and SettingsAdministratorDesktop" (avec les guillemets bien entendu car c'est un nom de fichier long) ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.