Detecter repertoire courant - C++ - Programmation
Marsh Posté le 09-05-2003 à 00:53:57
le langage C ne sait pas ce qu'est un répertoire: le C est un langage hautement portable et ne reconnait que tres peu de notions. Ici, il ne connait pas la notion de répertoire car elle n'existe pas sur toutes les plateformes (pense à ta machine à laver)
mais si tu précises ton système, on devrait pouvoir t'aider
Marsh Posté le 09-05-2003 à 01:00:42
++Taz a écrit : le langage C ne sait pas ce qu'est un répertoire: le C est un langage hautement portable et ne reconnait que tres peu de notions. Ici, il ne connait pas la notion de répertoire car elle n'existe pas sur toutes les plateformes (pense à ta machine à laver) |
le prog doit tourner sur win xp et nt4 au moins.
Marsh Posté le 09-05-2003 à 01:42:59
Regarde du cote des fonctions
|
Marsh Posté le 09-05-2003 à 07:46:14
c'est pas des conneries ça? me dit pas qu'ils ont appelés des fonctions publics _* ???
Marsh Posté le 09-05-2003 à 11:14:27
Taz > nan pas de conneries desole.
chrisbk > oui j'ai voulu lui dire cela aussi mais pas sur que ce soit pas du pur vc++
Marsh Posté le 09-05-2003 à 11:22:01
et tu changes toujours pas de pseudo.... je te comprendrais jamais
Marsh Posté le 09-05-2003 à 11:23:56
VisualC++ a écrit : Taz > nan pas de conneries desole. |
ben quitte a faire
perso j'ai jamais vu/utiliser les fonctions que tu cites....
Marsh Posté le 09-05-2003 à 11:24:55
Enfin suivant avec ce que tu compileras bleuarff, tu met le underscore (compilo vc) ou tu le vires.
Marsh Posté le 09-05-2003 à 11:33:11
++Taz a écrit : c'est pas des conneries ça? me dit pas qu'ils ont appelés des fonctions publics _* ??? |
Il y a de nombreuses fonctions similaires qui ont un nom XYZ sous unix, et _XYZ sous windows (ca date de la SDK de win 3.0 ou meme avant).
A+,
Marsh Posté le 09-05-2003 à 12:32:24
++Taz a écrit : ça par contre c'est une connerie |
Citation : |
Sans commentaire...
Marsh Posté le 09-05-2003 à 12:38:03
VisualC++ a écrit : |
ca veut un peu rien dire ca nan ?
tu pourrais tres bien utiliser GetCurrentDirectory() dans un code edité sous notepad (pour ne citer que le meilleur editeur) et compilé avec le intel C++ compiler ou gcc (ah nan pas gcc).
Marsh Posté le 09-05-2003 à 12:43:56
gilou a écrit : Il y a de nombreuses fonctions similaires qui ont un nom XYZ sous unix, et _XYZ sous windows (ca date de la SDK de win 3.0 ou meme avant). |
Toutes les fonctions de la lib CRT, implémentation Microsoft, ont les 2 noms de définis : avec _* et sans. D'après eux, c'est uniquement pour compatibilité.
Tiré du header direct.h
Code :
|
Le problème c'est que c'est pas vérifiable qui a raison : les fonctions chdir, mkdir et autres *dir* ne font pas parti du standard C ISO 9899
Marsh Posté le 09-05-2003 à 13:12:28
chrisbk a écrit : GetCurrentDirectory() me parait assez judicieux |
j'ai vu ça dans la msdn en effet, mais pour ce que j'ai pu essayer g pas encore réussi à m'en servir...jverrais ça plus en detail ce soir.
Sinon je suis sous vc mais je tiens à faire du c et pas du cpp.
Marsh Posté le 09-05-2003 à 13:22:50
bleuarff a écrit : |
Toutes les fonctions de l'API win32 sont en C. Ca marche très bien dans un programme en C donc.
exemple
Code :
|
Marsh Posté le 09-05-2003 à 18:35:48
konar_spreme a écrit :
|
Elles sont sans doute dans POSIX.
A+,
Marsh Posté le 10-05-2003 à 02:45:18
konar_spreme a écrit :
|
C nickel ! merci
Marsh Posté le 13-05-2003 à 00:13:41
Je suis en train de me frapper la tete contre les murs !
Le pb de récuperer le rep courant c'etait pour ouvrir un fichier se trouvant dans le meme rep que l'exe. Je viens seulement maintenant de me rendre compte que fopen fait ça par défaut Je me sens très con tout d'un coup
Marsh Posté le 13-05-2003 à 00:18:50
lol... Au moins tu auras appris quelque chose !
L'important c'est de pas mourrir idiot, non ?
Marsh Posté le 13-05-2003 à 00:27:08
Clair que j'aurais appris. C'est surtout que j'ai passé qq heures à faire un truc propre dans le vent. c'est vraiment débile, j'étais tellement persuadé que ça pouvait pas être aussi simple que j'ai meme pas fait un test
Marsh Posté le 13-05-2003 à 01:02:11
bleuarff a écrit : Je suis en train de me frapper la tete contre les murs ! |
tiens, c marrant, c exactement ce ke j'allais te dire...
comme koi, parfois c utile de rien connaitre en prog : ça simplifie la vision des choses !!
Marsh Posté le 13-05-2003 à 01:31:31
J'attire quand même ton attention sur le fait que le répertoire courant n'est pas forcemment celui où est l'executable. En effet, il peut être modifié de plusieurs façons (lors de l'ouverture de la boîte de dialogue "Ouvrir"/"Enregistrer sous", avec l'appel de la fonction SetCurrentDirectory ou encore dans le raccourci permettant de lancer le programme).
Donc si tu souhaites ouvrir un fichier dans le même répertoire que ton executable, il vaut mieux utiliser GetModuleFileName qui te donne le chemin vers ton fichier executable. Puis ensuite utiliser PathRemoveFileSpec (ou une fonction perso) pour obtenir uniquement le répertoire.
Utiliser le répertoire où se situe le programme peut être pratique, mais il faut se méfier car même si l'utilisateur peut lire dans ce répertoire, il ne peut pas forcemment écrire dedans. Dans de nombreux cas, Windows définit des répertoires privilégiés pour stocker la plupart des fichiers accompagnants un programme (voir la liste des CIDLs).
Marsh Posté le 13-05-2003 à 13:39:33
gatorette a écrit : J'attire quand même ton attention sur le fait que le répertoire courant n'est pas forcemment celui où est l'executable. En effet, il peut être modifié de plusieurs façons (lors de l'ouverture de la boîte de dialogue "Ouvrir"/"Enregistrer sous", avec l'appel de la fonction SetCurrentDirectory ou encore dans le raccourci permettant de lancer le programme). |
On va dire que mon prog ne change jamais le rep courant, et que celui-ci, que ce soit chez moi ou les ordis des salles info de l'ecole, a toujours un acces en ecriture. Mais merci des précisions
Marsh Posté le 08-05-2003 à 23:56:19
En C pur, est-ce qu'il est possible de récuperer le répertoire depuis lequel est lancée l'application ? Ce qu'il me faudrait, c'est une chaine contenant ce repertoire, afin de pouvoir ouvrir un fichier qui se trouve dans le meme rep.
---------------
©2008 Bleuarff Corp.