OVH Cloud OVH Cloud

Probleme avec fopen et CreateFile sous windows

22 réponses
Avatar
Thomas Boidron
Bonjour,

j'ai un programme qui est dans C:\program files\MonProg\

qui crée un fichier option.txt (avec fopen ouCreatefile) lorquil est lancé.

Mon probleme est le suivant:


si je crée un racourci vers mon executable alors le fichier option.txt est
crée dans

le repertoire ou se trouve le raccourci au lieu d'etre crée dans le
repertoire ou se trouve l'executable.

Quelqu'un peut-il m'aider?

Merci d'avance.

2 réponses

1 2 3
Avatar
James Kanze
"heinquoi" <nospam* writes:

|> a écrit dans le message de
|> news:
|> > Je connais mal Windows, alors, suite à tes réponses, j'y ai fait
|> > un essai. Il m'a fallu moins de 10 minutes pour invoquer un
|> > programme qui n'avait pas le chemin (ni même le nom du programme)
|> > en argv[0]. Ce n'est donc pas une solution robuste.

|> je suis intéressé par la façon dont tu à mis argv[0] en non valide
|> arg, pourrais tu nous en dire plus ?

D'exactement la même façon que je fais sous Unix. Je n'ai pas le
programme sous la main ici, mais la principe est simple : avec les
fonctions exec (ou spawn sous Windows), c'est le programme appelant qui
précise ce qui serait l'argv[0].

--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Avatar
kanze
James Kanze wrote in message
news:...
"heinquoi" <nospam* writes:

|> a écrit dans le message de
|> news:
|> > Je connais mal Windows, alors, suite à tes réponses, j'y ai fait
|> > un essai. Il m'a fallu moins de 10 minutes pour invoquer un
|> > programme qui n'avait pas le chemin (ni même le nom du
|> > programme) en argv[0]. Ce n'est donc pas une solution robuste.

|> je suis intéressé par la façon dont tu à mis argv[0] en non valide
|> arg, pourrais tu nous en dire plus ?

D'exactement la même façon que je fais sous Unix. Je n'ai pas le
programme sous la main ici, mais la principe est simple : avec les
fonctions exec (ou spawn sous Windows), c'est le programme appelant
qui précise ce qui serait l'argv[0].


Voici le code exacte :

_spawnl( _P_WAIT, "./exec.exe", "funny", "ha", "ha", (char const*)NULL ) ;

Dans le programme appelé ("./exec.exe"), argv[0] valait "funny".

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34

1 2 3