|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : novembre 2006 Messages : 176 ![]() |
Bonjour à tous,
Je me demande quelles sont les différences entre lancer un programme dans la console (./nom_programme) ou le lancer en cliquant dessus dans l'explorateur. A priori, je pensais que c'était pareil mais je rencontre un bug assez bizarre. J'ai dans mon application une image à charger (l'image se trouve dans le même dossier que mon application). Lorsque je lance par la console, pas de problème l'image se charge bien. Lorsque je lance en cliquand dessus, rien ne s'affiche ! (Dans mon programme j'accède à mon image par le chemin d'accés "./nom_image" ) Merci pour vos réponses ! |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : décembre 2006 Messages : 689 ![]() |
Quand, depuis la console, tu lances ton application, tu t'es placé dans le répertoire qui contient l'image puisque tu fait ./mon_appli.
Quand tu lances l'appli depuis l'icône, il y a de fortes chances que le chemin courant soit ton home. Si c'est toi qui a écrit ton appli, tu peux faire une modif rapide qui consiste à mettre le chemin complet de l'image que tu ouvres. Si ça marche, c'est que c'était bien cela le problème. |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : novembre 2006 Messages : 176 ![]() |
En effet, j'ai essayé de mettre le chemin d'accés complet et plus de problème l'image se charge bien. Merci !
Mais je suis un peu deçu au sens où je comptais profiter de l'avantage du " ./ " car si je distribue mon application, le chemin d'accès dépendra alors de l'emplacement que choisit l'utilisateur pour l'installer. N'y a-t-il pas une solution pour pallier à cela ? (comme par exemple une commande système forçant le répertoire courant à celui de mon application et non home) Merci. |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Inscription : décembre 2006 Messages : 689 ![]() |
Je vois plusieurs solutions :
- Tu analyses la chaine argv[0]. Elle te permet de récupérer la ligne de commande (tu peux faire un printf dans un premier temps pour te rendre compte des différentes façons dont ton programme sera appelé). Cette chaine peux t'aider à générer un nom de fichier avec son chemin complet ou pas... - Tu met ton fichier image dans un endroit standard. Par exemple on trouve souvent dans /usr/share ou /usr/local/share des fichiers de ressource. Tu peux aller voir par toi même. - Tu prévois une variable d'environnement. - Tu prends en paramètre un chemin sur la ligne de commande. Il existe peut-être aussi d'autres solutions. Tu peux faire un mix de tout ça aussi. |
|
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Inscription : octobre 2007 Messages : 812 ![]() |
ba tu recupere le pwd de l'app, et apres tout est relatif par rapport a ce path...
|
|
|
00
|
|
|
#6 | ||
|
Membre régulier
![]() Inscription : novembre 2006 Messages : 176 ![]() |
Citation:
Récupérer argv[0] marche nickel ! Pour la variable d'environnement, est-ce "aussi simple" qu'avec argv ou alors beaucoup plus technique ? Citation:
Merci à vous |
||
|
|
00
|
|
|
#7 | |
![]() ![]() |
Citation:
man getenv pour plus d'info.
__________________
"Never use brute force in fighting an exponential." (Andrei Alexandrescu) Mes articles dont Conseils divers sur le C++ Une très bonne doc sur la STL (en) Why linux is better (fr) |
|
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Inscription : décembre 2006 Messages : 689 ![]() |
d'ailleur getenv te permet de recuperer le pwd :
|
|
|
00
|
|
|
#9 | |
|
Membre régulier
![]() Inscription : novembre 2006 Messages : 176 ![]() |
Citation:
Comme quoi j'avais un mauvais à priori sur la difficulté d'utilisation des variables d'environnement lol. Merci à vous. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com