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

Langage Delphi Discussion :

L'exécutable ne trouve pas son chemin


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut L'exécutable ne trouve pas son chemin
    Bonjour,

    J'installe sur un PC client le logiciel que je viens de développer sur mon PC de développement. Problème :
    Au démarrage dans le OnCreate de la forrm principale il doit reconnaître les répertoires avec lesquels il va travailler par le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      CurExePath:= extractFilePath(application.exename);
      CurVerPath:= CurExePath+'VER\';
      CurArboTypeFile:= CurExePath+'DATA\';
    Comme l'exécutable sur le PC client m'adresse une erreur "fichier introuvable" j'explore ce qui se passe avec les sources du logiciel sous Delphi que j'ai installé provisoirement sur le PC client.
    Surprise : extractFilePath(application.exename) ne trouve pas le chemin sous lequel il est installé sur le PC client mais il conserve en mémoire celui sous lequel il est installé sur mon PC de développement. Bien entendu ces chemins sont différents et explique l'erreur fichier introuvable !

    Qui peut venir à mon secours ? sans doute cette erreur est due à un paramétrade de l'EDI de delphi sur le PC de développement ???

    Ne me laissez pas mourir idiot !

    Info utiles :
    Delphi 2007 sur Windows vista sur le PC de développement
    Delphi 2007 sur Windows XP sur le PC client

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 577
    Points : 25 217
    Points
    25 217
    Par défaut
    As-tu un chemin de démarrage ?
    soit via un Raccourci
    soit via l'IDE - menu Executer, Paramètrs...

    Que renvoie ParamStr(0) ?
    Ainsi que ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var
      Path: AnsiString;
    begin  
      SetLength(Path, MAX_PATH);
      ZeroMemory(@Path[1], MAX_PATH);
      GetModuleFileNameA(HInstance, @Path[1], MAX_PATH);
     
      ShowMessage(Path);

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut
    Dans propiété du racourci c'est le bon chemin sur le PC client

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut
    Comment appeler ParamStr(0) ?
    Sous Delphi sur le PC Client j'ai voulu indiquer le chemin dans Projet/Option/Répertoires...

    Nouvelle surprise ! C'est la structure des répertoires du PC de développement qu'il a en mémoire et pas la structure des fichiers du PC hôte !!!
    Je suis quand même arrivé à replacer les choses correctement en indiquant le chemin de l'exe et des sources en reoartant de la racine.

    Et encore une nouvelle surprise !!! Je ne peux pas le compiler en mettant un point d'arrêt sur la première ligne de OnCreate, il n'y va même pas. D'ailleurs j'ai supprimé l'exécutable que j'avais recopié à partir du PC de développement car il était toujours à la date de dernière compilation. Eh bien en recommançant une compilation sur le PC client pas de nouvel exécutable Même en ayant changé les chemins dans projet/option/...

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 577
    Points : 25 217
    Points
    25 217
    Par défaut
    Citation Envoyé par colorid Voir le message
    Comment appeler ParamStr(0)
    ParamStr c'est une fonction


    Citation Envoyé par colorid Voir le message
    Je ne peux pas le compiler en mettant un point d'arrêt sur la première ligne de OnCreate, il n'y va même pas.
    Tu as bien choisi la configuration Debug, sous 2007, tu faire tes propes configuration, en général, une Debug et une Release
    Pour les chemins, tu devrais toujours utiliser des chemins relatifs ou des variables d'environnement.
    C'est vrai que sous D7, le DPR c'était bien plus souple que le DProj de 2007 !

    L'exe ne se génère pas ? tu es sûr des chemins ?
    Modifie la Base et non directement les sous-configuration Debug\Release

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Autre information utile
    Delphi est bien installé sur le PC Client et même enregistré !
    Or en cliquant sur le projet il n'appele pas Dephi !

    Je suis completement coincé !
    1) J'ai supprimé l'exécutable recopié
    2) J'ai supprimé toute liaison avec le PC de développement y compris de disque amovible qui m'a permis de recopier les sources et l'exécutable
    3) Avec les sources je ne peux pas recompiler l'exécutable.

    Au secours que se passe-t'il ?

  7. #7
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 670
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 670
    Points : 7 040
    Points
    7 040
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    L'exe ne se génère pas ? tu es sûr des chemins ?
    +1
    Tu as vérifié les chemins de sortie du projet ?

  8. #8
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 448
    Points
    28 448
    Par défaut
    Citation Envoyé par colorid Voir le message
    Surprise : extractFilePath(application.exename) ne trouve pas le chemin sous lequel il est installé sur le PC client mais il conserve en mémoire celui sous lequel il est installé sur mon PC de développement.
    c'est tout simplement impossible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function TApplication.GetExeName: string;
    begin
      Result := ParamStr(0);
    end;
    ParamStr(0) étant le nom complet du programme actif et non un paramètre quelconque de compilation dans l'IDE

Discussions similaires

  1. L'action du formulaire JSP ne trouve pas le chemin de la servlet
    Par freetala dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 09/05/2011, 13h59
  2. Réponses: 0
    Dernier message: 14/11/2010, 23h47
  3. Réponses: 5
    Dernier message: 18/06/2009, 15h20
  4. Réponses: 1
    Dernier message: 23/08/2007, 16h21

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