IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

GetFullPathName et Win XP


Sujet :

Windows

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 38
    Points : 26
    Points
    26
    Par défaut [Résolu] GetFullPathName et Win XP
    Bonjour,

    J'ai un probleme avec l'API GetFullPathName.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetFullPathName(src_file, _MAX_PATH, dest_file, &p);
    j'ai un buffer src_file avec 133 caracteres.
    j'ai un buffer de sortie dest_file avec 130 caracteres.
    _MAX_PATH = 260

    je fais tourner mon application sous W2k pas de probleme GetFullPathName me retourne un valeur de 130

    je fais tourner mon apllication sous Win XP et GetFullPathName me retourne 0.
    A croire que sous XP la longueur max de GetFullPathName est 133 + 130 = 263

    quelqu'un a une reponse
    merci

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    C'est spécifique Windows je déplace.
    If the function fails for any other reason, the return value is 0 (zero). To get extended error information, call GetLastError.
    la fonction échoue.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 38
    Points : 26
    Points
    26
    Par défaut
    Oui la fonction échoue

    Y'a t'il une lib a mettre a jour pour utiliser cette API (vieille de win95) sous Win XP ou une autre API :

    PS: désolé d'avoir mis le sujet dans le mauvais forum

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Appelle GetLastError pour avoir plus d'infos. Que donnes-tu en paramètre ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 38
    Points : 26
    Points
    26
    Par défaut
    Erreur 206 : The filename or extension is too long.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    bool CClass:: Fct(char *src_file )
    { 
    char dest_file[_MAX_PATH];
    char *p;
    GetFullPathName(src_file, _MAX_PATH, dest_file, &p);
    }
    src_file est un buffer contenant un chemin relatif et son fichier

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut Re: GetFullPathName et Win XP
    Citation Envoyé par juju92
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GetFullPathName(src_file, _MAX_PATH, dest_file, &p);
    j'ai un buffer de sortie dest_file avec 130 caracteres.
    _MAX_PATH = 260
    Donc, tu passes à GetFullPathName() une taille de buffer supérieure à la taille véritable ?


    Sinon, Normalement, GetFullPathName() ne retourne pas zéro avec un buffer trop court:

    If the lpBuffer buffer is too small to contain the path, the return value is the size of the buffer that is required to hold the path and the terminating null character, in TCHARs. Therefore, if the return value is greater than nBufferLength, call the function again with a buffer that is large enough to hold the path.

    If the function fails for any other reason, the return value is 0 (zero). To get extended error information, call GetLastError.
    Peut-être que c'est src_file qui est trop long... La chaîne est bien terminée par un caractère nul?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 749
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 749
    Points : 10 666
    Points
    10 666
    Billets dans le blog
    3
    Par défaut
    Et le chemin relatif est bien valide ?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 38
    Points : 26
    Points
    26
    Par défaut Re: GetFullPathName et Win XP
    Citation Envoyé par Médinoc
    Sinon, Normalement, GetFullPathName() ne retourne pas zéro avec un buffer trop court:

    If the lpBuffer buffer is too small to contain the path, the return value is the size of the buffer that is required to hold the path and the terminating null character, in TCHARs. Therefore, if the return value is greater than nBufferLength, call the function again with a buffer that is large enough to hold the path.

    If the function fails for any other reason, the return value is 0 (zero). To get extended error information, call GetLastError.
    Peut-être que c'est src_file qui est trop long... La chaîne est bien terminée par un caractère nul?
    exacte ça marche tres bien sous W2K par contre pas sous Win XP c'est inconprehensible

  9. #9
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 38
    Points : 26
    Points
    26
    Par défaut
    J'ai contourné le probleme en utilisant la fonction unicode GetFullPathNameW

    merci pour vos réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. IB 6.0.1 - Win XP - Character Set
    Par SuperTotor dans le forum InterBase
    Réponses: 4
    Dernier message: 03/06/2003, 20h25
  2. Problème montage partition Win sous RedHat ??
    Par baba dans le forum Administration système
    Réponses: 6
    Dernier message: 18/01/2003, 11h26
  3. Quel outil pour du développement Client/Serveur (Win XP) ?
    Par jey_bonnet dans le forum Débats sur le développement - Le Best Of
    Réponses: 5
    Dernier message: 02/11/2002, 14h57
  4. Réseau Win/Linux
    Par ben91 dans le forum Développement
    Réponses: 2
    Dernier message: 08/09/2002, 22h59
  5. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo