2009-11-16 5 views
2

J'ai quelques applications de ligne de commande qui finissent par appeler des objets com. Plutôt que d'ajouter une nouvelle interface à ces objets com, peuvent-ils accéder aux paramètres transmis à partir de la ligne de commande?C++ Accès aux arguments de ligne de commande en dehors de main?

Editer: Voici comment je peux appeler GetModuleFileName pour obtenir le nom du fichier. Je me demande s'il existe une méthode équivalente pour obtenir les arguments.

Répondre

8

L'API Win32 que vous cherchez est: GetCommandLine. Toutefois, votre objet COM doit probablement être exécuté dans votre processus.

Pour convertir la ligne de commande en un tableau de chaînes de style argv, appelez la fonction CommandLineToArgvW.

+0

Hmm, c'est GetCommandLine – EFraim

+0

Correction du nom du lien, merci. –

+1

Merci, j'avais du mal à trouver ça. – Kyle

3

Ceci est spécifique à la plate-forme. Dans Win32, vous pouvez utiliser GetCommandLine().

Cependant, vous devrez effectuer l'analyse manuellement.

+0

+1 thx pour correction –

1

Dans Windows, vous pouvez obtenir la ligne de commande avec un appel de fonction WIN32 (GetCommandLine), mais il ne sera pas analysé dans un tableau tel que argc/argv. Si l'objet COM utilise MFC, vous pouvez obtenir les arguments de ligne de commande à partir de votre objet CWinApp. Sinon, il n'y a pas de moyen facile de le faire.

Questions connexes