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 :

Installation exe et dll


Sujet :

Windows

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 92
    Points
    92
    Par défaut Installation exe et dll
    Bonjour,

    Étant peu habitué des méthodes d'installation sous Windows (je suis linuxien mais là n'est pas le sujet de ce fil), sans doute pouvez-vous m'éclairer.

    Je développe un logiciel L.
    Je développe une bibliothèque B dont L dépend.
    La bibliothèque B dépend d'une bibliothèque tierce, par exemple la GLib ou libcurl.

    Question : comment gérer proprement la dépendance ? (la Glib, libcurl ou autre)

    Mon arborescence est celle-ci :
    - L \ L.exe
    - L \ Plugins \ B1.dll, B2.dll, B3.dll ...
    - L \ Lib \ Glib.dll, libcurl.dll ...

    - Est-ce déjà une bonne idée de mettre "Lib" à ce niveau ou vaut-il mieux placer les dll dans un répertoire système ? Dans ce dernier cas, lequel est le plus approprié ?

    - Si je laisse ces dlls dans Lib, je dois, me semble-t-il, modifier la variable d'environnement %PATH% afin de lui ajouter ce dossier (Lib). Ai-je juste ? Est-ce propre ?

    - Si un autre logiciel a une dépendance commune et installe lui aussi la GLib (par exemple), quelle GLib va utiliser L ? Si les versions des GLib sont différentes, il peut y avoir des incompatibilités. Comment éviter un éventuel problème ?

    Précision : vu que certains plugins (B1, B2, ...) peuvent avoir des dépendances communes, je n'accepte pas de les intégrer.

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2006
    Messages
    795
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 795
    Points : 1 270
    Points
    1 270
    Par défaut
    Bonjour iri,

    pour l'emplacement des dll, il me semble que Windows cherche d'abord dans le répertoire où se situe l'executable, puis dans le répertoire système de Windows et enfin dans les rep de %PATH%.
    Mais j'ai déjà eu des problèmes en mettant mes dll dans le même rep que l'exe, et j'ai du créer un fichier bidon avec une extension .local (leNomDeMonExe.exe.local voir cette discussion)

    On peut aussi modifier ce comportement par défaut, notamment à l'aide des assembly où tu spécifies toi-même l'emplacement de tes dll.
    Je ne peut pas trop en dire plus à propos de ces assembly n'ayant jamais essayé mais ca serait -je pense- la meilleure solution pour toi si tu souhaites conserver ton arborescence.

    A plus et bon courage avec le "Dll Hell"

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 340
    Points : 177
    Points
    177
    Par défaut
    je ferais le truc habituel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    path/ta_lib
      bin/
        toto.exe
        glib.dll
        libcurl.dll
      lib/
        ta_lib/
          b1.dll
          b2.dll
    Si tu laisse les dll dans path/ta_lib/lib, tu dois en effet modifier le PATH

    - Si un autre logiciel a une dépendance commune et installe lui aussi la GLib (par exemple), quelle GLib va utiliser L ? Si les versions des GLib sont différentes, il peut y avoir des incompatibilités. Comment éviter un éventuel problème ?
    il n'y a pas ce probleme si tu mets tout dans bin/.
    L'Opus attire les Prélats

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Points : 92
    Points
    92
    Par défaut
    Merci.
    J'attendais si d'autres pistes m'étaient proposées.

    Je pensais qu'il y avait un moyen simple d'appeler une dll plutôt qu'une autre. Apparemment, je dois plus mettre les mains dans le cambouis que je ne l'envisageais.

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

Discussions similaires

  1. [MFC] probleme .exe et dll
    Par moulefrite dans le forum MFC
    Réponses: 4
    Dernier message: 04/05/2006, 18h14
  2. lier un .exe à des dll dans un autre emplacement
    Par Husqvarna dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 19/04/2006, 10h53
  3. Programme de création fichier : INSTAL.EXE
    Par Nissartis dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 04/04/2006, 23h07
  4. [VB.NET]installation exe
    Par mamingui dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/04/2006, 12h48
  5. [VB] COmment compiler une dll dans un exe (zlib.dll)
    Par Khrysby dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 01/11/2005, 12h10

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