Bonjour
comment je peux utiliser argc et argv de main standard dans winmain ?
-----
Bonjour
comment je peux utiliser argc et argv de main standard dans winmain ?
Pourquoi faire du win32 ? Contexte ?
Le fonction-point d'entrée main attend une "liste" d'arguments, avec un entier qui les dénombre.
Winmain attends beaucoup plus de paramètres, tu as regardé ?
En particulier du côté du pointeur
Ou de la fonction GetCommandLine. Mais comprends bien qu'un soft graphique n'a pas vocation a être lancé via une ligne de commande, associée à des paramètres... bien que ce soit possible: l'utilisation en serait plus un soft qui en lance un autre (l'OS, par exemple, si nécessaire par un raccourci "forgé")...Code:LPSTR lpCmdLine
J'ai glissé Chef !
Ce n'est pas général. Le premier contre exemple standard qui vient a l'esprit c'est un IDE qu'on lance a priori sans paramètres mais avec possibilité de lancement paramètrè pour toutes sortes de builds en batch.
Je sais bien, j'ai pris l'exemple simpliste du raccourci, j'aurais pu penser à la fonction ouvrir avec de Windows qui lance avec en paramètre le chemin vers le fichier cible, etc ...
Enfin, on a là un débutant qui semble souhaiter passer de la ligne de commande en mode graphique sans avoir réfléchi aux différences que cela implique, tout en faisant du win32 sans doute par ignorance des technos actuelles pour le développement d'applis graphique Windows...
J'ai glissé Chef !
En effet, la première chose qu'on aimerait savoir c'est : que compte-t-il faire ?
En fait, c'est tellement faux.un soft graphique n'a pas vocation a être lancé via une ligne de commande, associée à des paramètres... .
Premièrement les développeurs/développeuses utilisent souvent les paramètres ancrés dans les liens symboliques (*.lnk) avec des paramètres du style -f pour file. Pour multiples raisons d'ailleurs.
Lorsque ton installation est effectuée pour des raisons qui leurs sont propres tu peux avoir ou non un raccourci sur ton bureau qui a un lien contenant des paramètres.
Quand tu as par exemple dans ton menu démarrer une application nommée Soft :
Soft -> Soft.exe
Soft (mode sans echecs) -> Soft.exe -ParamSansEchec
Sinon l'utilisation la plus courante des argv[] reste l'utilisation de configuration.
Exemple :
Programme.exe
--- User1.cfg
--- User2.cfg
Donc
argv[0] : -f, -config, -user...
argv[1] : User1.cfg, User2.cfg...
En incrementant ta lecture de parametre de +2 à chaque boucle. Ou si tu veux quelque chose de plus évolué tu regarde si ton caractère n°0 donc argv[0][0] est bien égal à un "-" sinon ça veut dire que chaques paramètre précédent cette condition est égal à une config différente (donc pas le cas dans le contexte utilisateur).
Cdlt,
Gian BENHALIMA.
Dernière modification par Gian7 ; 09/06/2020 à 01h20.
Au lieu de réinventer la roue, il est plus simple de s'inspirer des fonctions getopt et getoplong de la libc GNU (cf. linux) : https://www.gnu.org/software/libc/ma...pt.html#Getopt
Sources disponibles https://www.gnu.org/software/libc/sources.html
Not only is it not right, it's not even wrong!
Affirmation gratuite : c'est tellement vrai.
On évite justement ce genre de choses parce qu'elles ne sont pas manipulables graphiquement.
Entre avoir un écran de préférences qui permet de voir les différentes options avec lien vers la documentation et l'édition de raccourcis avec paramètres sans vérification d'entrée nécessitant le recours à un page du manuel et la plongée dans un menu que la plupart des utilisateurs ne verra jamais, le choix es.
C'est pour ça qu'on met en place des solutions plus immédiatement accessibles avec des menus, ou la pression d'une touche pendant le lancement :
https://support.mozilla.org/en-US/kb...sing-safe-mode
Et ce d'autant plus que cette approche "ligne de commande" ne marche pas sur certaines plateformes comme les iPhone/iPads.
Oui, c'est un truc de développeur mais qu'on évite à tout prix pour l'utilisateur normal qui va se retrouver avec 2 icones/entrées dans le moteur de recherche de l'OS et qui va donc à un moment se retrouver en mode sans échec sans comprendre pourquoi.
Et outre firefox, une fois que tu as pressé ton bouton ? Ça agit comment ?Code:On évite justement ce genre de choses parce qu'elles ne sont pas manipulables graphiquement.
Ok peut être. Exemple. Donc sur une distribution utilisant le meme kernel.Au lieu de réinventer la roue, il est plus simple de s'inspirer des fonctions getopt et getoplong de la libc GNU (cf. linux)
Tu peux extraire une archive en ligne de commande
Donc parceque tu fais une interface graphique, tu va tout refaire ?Code:tar -xvf Archive.tar
Ou ton interface graphique va servir de passerelle pour jutement utiliser cette commande avec les parametre adéquat ?
Sinon exemple simple.
https://1drv.ms/u/s!Atapgmm--Qc1fQzrhHPVlGdXY2g
Vos propos sont incohérents, je me dois de vous le signaler, ce qui explique mon absence de réponse.Ok peut être. Exemple. Donc sur une distribution utilisant le meme kernel.
Tu peux extraire une archive en ligne de commande
Donc parceque tu fais une interface graphique, tu va tout refaire ?Code:tar -xvf Archive.tar
Ou ton interface graphique va servir de passerelle pour jutement utiliser cette commande avec les parametre adéquat ?
Not only is it not right, it's not even wrong!
Oui dans un sens on va appeler un programme en ligne de commande.
L'interface graphique quisert de passerelle pour reunir les informations adéquates :
Donc en gros la l'interface graphique fait un "lien" comme disait ... .
Dans l'exemple que j'ai cité avec une image. Le lien (lnk) possède des parametre du meme style que les programme en ligne de commande, pourtant c'est une interface graphique visant juste à charger des paramètres.
Donc pour completer il y a des liens au sein de l'interface graphique qui execute effectivement des programmes en ligne de commande avec des parametre.
Des programmes graphique qui s'execute effectivement avec des parametre d'ou l'interet d'utiliser argc et argv afin de charger des parametre, et permettre à l'utilisateur de creer un raccourci avec de paramètre préchargés sans avoir a lancer le programme et recharger à nouveau avec une autre config.
@Albanxii: c'est une des deux raisons de mon abandon sur ce fil...
La deuxième étant l'absence de signe de vie du po...
J'ai glissé Chef !
Donc pour resumer
Archives qui est une application graphique va enregistrer des paramètres :
/home/user/archive.tar
En cliquant sur Extract va executer :
tar -xvf /home/user/archive.tar.
Et MPRData.exe :
Le raccourci de MPRData.exe est en fais un lien qui a pour cible :
MPRData.exe -C=Config.ini
Au lancement de l'application, ça va récupérer le paramètre -C=Config.ini qui va le préchargé. D'ou l'utilisation des argc et argc sur une application graphique.
https://1drv.ms/u/s!Atapgmm--Qc1gQZHkX_E247pSZLl
holala02 n’étant pas revenu depuis son premier message il y a longtemps cette discussion est fermée.
Rien ne sert de penser, il faut réfléchir avant - Pierre Dac