exe qui ne fonctionne pas directement

exe qui ne fonctionne pas directement - C - Programmation

Marsh Posté le 29-08-2008 à 04:24:42    

Bonjour,  
Je programme sous code::blocks en C, depuis quelques mois.  
Seulement, j'ai un probleme; mon exe fonctionne si je le compile et l'exécute depuis code::blocks, parcontre, si je vais directement dans le dossier de mon programme et que je clique sur l'exécutable, ce dernier ne fonctionne pas.  
Ca me pose probleme, notemment pour la créatin de l'installation (avec inno setup), où par conséquent le programme fonctionne uniquement s'il est lancé depuis l'installation (c'est-à-dire la toute premiere fois)...alors que si je clique sur ;l'exécutable dans le menu demarrer ou sur le raccourci du bureau, il ne fonctionne pas (normal).  
Savez-vous pourquoi mon exe ne fonctionne pas si je clique directement dessus dans le dossier de mon programme svp?

Reply

Marsh Posté le 29-08-2008 à 04:24:42   

Reply

Marsh Posté le 29-08-2008 à 04:37:09    

Dire qu'il ne fonctionne pas, c'est bien trop vague.
Il se passe quoi exactement quand tu l'exécute?


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 29-08-2008 à 04:51:49    

Il "flashe", la fenetre apparait tres vite puis disparait. (travail avec SDL)


Message édité par jaco3th le 29-08-2008 à 04:57:00
Reply

Marsh Posté le 29-08-2008 à 08:51:42    

Ouvre le dans une console plutôt, s'il affiche quelque chose tu sauras ce que c'est.

Reply

Marsh Posté le 29-08-2008 à 09:04:24    

Je ne comprends pas trop (je suis debutant)
edit-> je viens d'essayer avec un truc tout simple, le main qui dit "bonjour" dans la console, pour voir, et ça me fait pareil;
ça "flashe" si je clique sur le exe, alors que si je passe par code::blocks ça fonctionne.


Message édité par jaco3th le 29-08-2008 à 09:28:53
Reply

Marsh Posté le 29-08-2008 à 09:39:31    

C'est comme pour n'importe quel exécutable en mode console : quand tu l'exécutes, win ouvre une console pour le lancer, puis la ferme quand ton programe termine. Si ton truc ne fait qu'afficher "bonjour", ça va trop vite et tu ne vois qu'une fenêtre qui flash. Tout marche comme il faut, tu n'as juste pas le temps de le voir.

Reply

Marsh Posté le 29-08-2008 à 09:44:19    

Oui , mais il y a un system pause inclu dans code::blocks...
Je n'y comprends plus rien...
Pourquoi mon exe marche lors du lancement de l'installation dans ce cas, et pas si je clique dessus hors de inno setup?

Reply

Marsh Posté le 29-08-2008 à 09:52:28    

jaco3th a écrit :

Oui , mais il y a un system pause inclu dans code::blocks...
Je n'y comprends plus rien...
Pourquoi mon exe marche lors du lancement de l'installation dans ce cas, et pas si je clique dessus hors de inno setup?


Tu viens de donner la solution, à toi de simuler le "pause" de Code::Block.s

Reply

Marsh Posté le 29-08-2008 à 10:09:56    

Merci, c'est justement ce que j'ai fais avant de revenir ici, ça fonctionne pour le petit programme qui dit "bonjour"
Parcontre pour mon programme avec la SDL, je suis perdu, je ne sais plus où mettre un system("PAUSE" );
j'ai 4 fonctions...2 qui chargent des images, 1 principale, et un main tres court qui ouvre les librairies tierces, tout à la fin.

Reply

Marsh Posté le 29-08-2008 à 10:35:18    

Nan mais ouvre une console et exécute-le là-dedans ton programme, arrête de t'embêter avec des system() tout moches.

Reply

Marsh Posté le 29-08-2008 à 10:35:18   

Reply

Marsh Posté le 29-08-2008 à 10:56:24    

Je ne comprends pas ce que tu veux dire...mon but est que mon exécutable fonctionne sans code::blocks, de façon à enfin crée une installation (avec inno setup) qui fonctionne correctement, c'est pour ça que je m'embete...

Reply

Marsh Posté le 29-08-2008 à 11:10:57    

Console :
http://www.izipik.com/images/20080829/kdwas8j9pwv7ly8b1w-Sans_titre.PNG
 
Tu lances ton programme à partir de là. Vu qu'il est en mode console.

Reply

Marsh Posté le 29-08-2008 à 11:17:07    

Non, il est en mode fenetre, la c'était un test le truc qui dit "bonjour" en console...
 
Je ne sais pas faire ce que tu dis...

Reply

Marsh Posté le 29-08-2008 à 11:21:24    

C'est pas gagné...
Essaie quand même de le lancer à partir de là (menu démarrer > tous les programmes > accessoires > invite de commande), une fois sous la console tu vas dans le bon répertoire (commande "cd <répertoire>" ) et tu lances juste ton exécutable de là.
 
 
Ensuite, dans ton programme, puisqu'il est en mode fenêtre : tu interceptes les erreurs ? Tu génères des fichiers de logs ?
Si la réponse est non à ces deux questions, alors tu dois y remédier. Pour éviter justement de constater un problème sans rien avoir comme information pour savoir d'où ça peut venir.

Reply

Marsh Posté le 29-08-2008 à 11:27:03    

Je suis paumé la, j'avoue....le probleme me paraissait simple...

Reply

Marsh Posté le 29-08-2008 à 11:32:46    

Il l'est.

 

Y a un truc qui foire à l'exécution, tout simplement. Mais comme tu n'as aucune informatioin, tu ne peux pas enquêter. Donc il faut en recupérer, des infos.


Message édité par Elmoricq le 29-08-2008 à 11:33:24
Reply

Marsh Posté le 29-08-2008 à 11:41:02    

Je ne sais pas comment procédé.

Reply

Marsh Posté le 29-08-2008 à 11:43:12    

démarrer, exécuter, "cmd" puis "cd monrépertoirequivabien" et enfin "monprogramme.exe"
 
:spamafote:

Reply

Marsh Posté le 29-08-2008 à 11:44:44    

éventuellement, tu modifies ton raccourcis temporairement pour ajouter :
 
"> c:\toto.txt" à la fin de la ligne de commande.
 
ça va rediriger la sortie standard vers un fichier "toto.txt" à la racine du disque C, ce qui peut être utile pour débug, mais tu perds toute l'interfactivité du programme, donc quand ça remarche tu sauras pas :D


Message édité par MagicBuzz le 29-08-2008 à 11:45:07
Reply

Marsh Posté le 29-08-2008 à 11:49:49    

Je vous assure je comprnd rien dutout .

Reply

Marsh Posté le 29-08-2008 à 11:51:11    

C'est pas en répétant "je ne comprends pas" alors qu'on te dit exactement comment faire que tu vas y arriver.
Être développeur c'est aussi savoir se documenter.


Message édité par Elmoricq le 29-08-2008 à 11:51:29
Reply

Marsh Posté le 29-08-2008 à 11:56:35    

Oui, mais j'ai l'impression qu'on m'explique commence ouvrir mon exécutable sans passer par code::blocks, mais c'est tout, par exemple si j'envoie mon installation à qq, comment il fera lui? il n'aura rien d'autre que l'installation, ça marchera le premier coup, et apres il aura un exe qui ne fonctionnera pas

Reply

Marsh Posté le 29-08-2008 à 11:58:40    

ouais ben faut revoir les bases avant de commencer à programmer hein ? :o
 
http://ecx.images-amazon.com/images/I/51N9AY6XNGL._SL500_AA240_.jpg

Reply

Marsh Posté le 29-08-2008 à 12:00:09    

comme le dit Elmoricq, il y a de grandes chances que ton programme fasse une erreur au démarrage. vu que c'est un programme de type ligne de commande, la fenêtre se ferme aussitôt.
 
donc commence par lancer ton programme dans une fenêtre console pour voir l'éventuel message d'erreur qui s'affiche.


Message édité par MagicBuzz le 29-08-2008 à 12:00:14
Reply

Marsh Posté le 29-08-2008 à 12:06:45    

Ca me met acces refusé...

Reply

Marsh Posté le 29-08-2008 à 12:08:19    

Et le fait que je clique sur un exe, ça me parrait bizard que ça marche puisque de tout façon le programme a besoin de .DLL

Reply

Marsh Posté le 29-08-2008 à 12:08:38    

J'ai l'impression de m'enfoncer la, non?

Reply

Marsh Posté le 29-08-2008 à 12:16:12    

je pige rien à ce que tu racontes.
 
mais si il te dit "accès refusé", bah à priori t'as trouvé ce qui cloche :tu tente d'accéder à une ressource à laquelle tu n'as pas accès avec tes droits actuels. ton programme nécessite certainement une élévation de privilège pour tourner. il fait quoi au juste ?


Message édité par MagicBuzz le 29-08-2008 à 13:48:16
Reply

Marsh Posté le 29-08-2008 à 12:18:31    

de quoi le programme? c'est un jeu...

Reply

Marsh Posté le 29-08-2008 à 12:20:45    

je ne comprends pas non plus "elevation de privilege", ce que je trouve bizard c'est qu'il fonctionne correctementsous code::blocks, et aussi lancé par innosetup(la premiere fois)


Message édité par jaco3th le 29-08-2008 à 12:21:09
Reply

Marsh Posté le 29-08-2008 à 12:26:26    

mdr ooo miracle ça marche!!!! j'ai rien fais, j'hallucine!!

Reply

Marsh Posté le 29-08-2008 à 12:26:49    

jaco3th a écrit :

Je vous assure je comprnd rien dutout .


 
Et tu fais du C [:prozac]
Tu crois pas que tu devrais déjà comprendre quelque chose à l'informatique avant de faire de la programmation ?


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
Reply

Marsh Posté le 29-08-2008 à 12:28:25    

(le exe flash toujours dans le dossier du programme mais c'est pas grave, ça je m'en fiche), j'ai juste désinstallé et réinstallé avec inno set up !
Merci pour votre patiente et vos reponses.

Reply

Marsh Posté le 29-08-2008 à 12:29:01    

pas le temps, j'ai besoion d'argent lol

Reply

Marsh Posté le 29-08-2008 à 12:32:05    

oh je reviendrais avant je pense...non quand je serait riche j'engagerais des programmeurs

Reply

Marsh Posté le 29-08-2008 à 12:32:27    

Putain l'échec [:pingouino]


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 29-08-2008 à 12:32:43    

jaco3th a écrit :

pas le temps, j'ai besoin d'argent lol


 
Ok ouais. Donc t'as accepté un taf pour lequel t'es incompétent juste pour de la thune ?
T'assumes pas de bosser chez McDonald's ?


---------------
TRIPS RIGHT BUNCH F SHUTTLE TOM AND JERRY RIGHT YELLOW
Reply

Marsh Posté le 29-08-2008 à 12:34:36    

heu...la j'avoues je pars pas dans ce genre de conversations inutiles, merci à ceux qu'on essayé de m'aider ciao

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed