Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment ranger les DLL ?

Peut-on mettre les DLL dans un sous-fichier ?

    18 janvier 2018 à 0:52:20

    Bonjour, 

    Etant développeur amateur, j'aimerais savoir s'il est possible de mettre tout les DLLs dans un sous-fichier dans le projet au lieu de les mettre forcément à côté du .exe ?

    Je suis un peu maniaque et aime bien tout ranger dans des petites cases, et surtout pour que ça paraisse plus propre quand je donne quelque chose à des amis et qu'ils ne cherchent pas le .exe entre tout ces .dll .

    J'ai parcouru l'internet en quête d'une réponse, je suis tombé sur des histoires de LoadLibrary ou bien SetDllDirectory , mais sans succès. De même j'ai cherché sur ce forum, un post de 2013 est le plus récent sur le sujet mais pas vraiment de réponse.

    Donc je m'adresse à vous, si vous avez une solution plutôt simple ou bien détaillée pour ranger tout les petits .dll dans un fichier à coté du .exe au lieu de prendre plein de place dans le répertoire de base.

    Merci d'avance pour vos réponses, Henrixounez.

    -
    Edité par HenriXounez 18 janvier 2018 à 0:52:30

    • Partager sur Facebook
    • Partager sur Twitter
      18 janvier 2018 à 8:04:11

      Bonjour,

      attrib +s +h +r *.dll

      Cette commande [admin] sous windows permet de donner les attributs Read only, fichier système et fichier caché. C'est comme ça que je fait, le .exe apparait mais pas les .dll (mais toujours présente et accessible pour le .exe)

      -
      Edité par Sceau de Nîmes 18 janvier 2018 à 8:39:35

      • Partager sur Facebook
      • Partager sur Twitter

      J'ai demandé à Google mais il est sous assistance respiratoire à cause du Corona.

      J’ai pas besoin que tu crois ce que moi je crois.

        18 janvier 2018 à 8:58:21

        Chevalier Numérique a écrit:

        Bonjour,

        attrib +s +h +r *.dll

        Cette commande [admin] sous windows permet de donner les attributs Read only, fichier système et fichier caché. C'est comme ça que je fait, le .exe apparait mais pas les .dll (mais toujours présente et accessible pour le .exe)

        -
        Edité par Chevalier Numérique il y a 15 minutes

        Excuse moi, mais est ce que tu sais comment attribué ces mêmes attribut à un dossier en particulier sous windows toujours ? 🙂



        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          18 janvier 2018 à 9:13:11

          Bonjour,

          Comme expliqué dans cette page, la recherche des .dll sous windows se fait dans un ordre précis :

          • 1. Le répertoire contenant le module exécutable du processus en cours.

          • 2. Le répertoire actif.

          • 3. Le répertoire System de Windows. La fonction GetSystemDirectory récupère le chemin de ce répertoire.

          • 4. Le répertoire Windows. La fonction GetWindowsDirectory récupère le chemin de ce répertoire.

          • 5. Les répertoires désignés dans la variable d'environnement PATH.

          Tu ne veux pas du 1, le 2 est trop bancale pour permettre d'être sûr (si le programme est exécuté depuis la ligne de commande, le repertoire actif n'est pas forcement celui que tu crois), il vaut mieux ne pas trop jouer avec le 3, le 4 pourrait te convenir, et le 5 est probablement ta réponse.

          Maintenant, si tu ne veux pas installer ton programme sur le PC cible et que tu souhaite uniquement distribuer un programme "a la va-vite", la méthode de Chevalier Numérique est un bon moyen de contournement.
          Tu as aussi la possibilité de ne pas utiliser de bibliothèque dynamique (.dll) mais statique. Attention à ben te renseigner sur ce que cela implique.

          • Partager sur Facebook
          • Partager sur Twitter
            18 janvier 2018 à 15:51:25

            Désolé DarenADAMS je sais pas du tout
            • Partager sur Facebook
            • Partager sur Twitter

            J'ai demandé à Google mais il est sous assistance respiratoire à cause du Corona.

            J’ai pas besoin que tu crois ce que moi je crois.

              18 janvier 2018 à 17:34:39

              Hello,

              En console, sous windows, tu tapes attrib /? et tu auras la syntaxe.

              Je viens d'essayer ceci:

              md fake
              attrib +r fake /d /s
              

              et ça met bien le répertoire fake en read-only

              • Partager sur Facebook
              • Partager sur Twitter

              On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                18 janvier 2018 à 18:18:40

                DarenADAMS a écrit:

                Excuse moi, mais est ce que tu sais comment attribué ces mêmes attribut à un dossier en particulier sous windows toujours ? 🙂

                Il voudrais le cacher je pense

                DarenADAMS Du coup pareille mais avec /d

                attrib +s +h +r /d ton_repertoir

                -
                Edité par Sceau de Nîmes 18 janvier 2018 à 18:22:23

                • Partager sur Facebook
                • Partager sur Twitter

                J'ai demandé à Google mais il est sous assistance respiratoire à cause du Corona.

                J’ai pas besoin que tu crois ce que moi je crois.

                  18 janvier 2018 à 18:52:58

                  Re,-

                  Si +r fonctionne, +h fonctionne aussi. Mais pour un répertoire, le /s est nécessaire

                  EDIT: sous win7 en tout cas

                  -
                  Edité par edgarjacobs 18 janvier 2018 à 18:53:42

                  • Partager sur Facebook
                  • Partager sur Twitter

                  On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

                  Anonyme
                    18 janvier 2018 à 19:14:50

                    Cela ne changeras pas le fait que les .dll ne seront pas trouvé à moins de modifier le PATH.
                    Et en général, la modification du PATH, c'est fait quand on installe un logiciel.

                    Je pense que cacher les .dll contenu à la racine est un bon bricolage.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 janvier 2018 à 21:10:09

                      Coucou,

                      Tu peux aussi mettre ton exe et tes dll dans des sous répertoires et faire un .bat (exécutable que lancera ton ami ou toi) pour régler le PATH et lancer ton exe.

                      Ça te donnerai une architecture dans ce genre :

                      mon_projet/
                       |
                       |--> bin/
                       |     |--> mon_projet.exe
                       |
                       |--> lib/
                       |     |--> ma_dll.dll
                       |
                       |--> mon_projet.bat

                      Avec un .bat qui pourrait ressembler à :

                      pushd "%~dp0"
                      set PATH="%CD%\lib";%PATH%
                      set exe_path="%CD%\bin\mon_projet.exe"
                      popd
                      
                      start "" "%exe_path%"

                      (Je n’ai pas de PC Windows sous la main et je ne connais que très peu le batch (et Windows d’ailleurs), du coup il y a de forte chance que ce script ne fonctionne pas. C’est avant tout pour l’idée.)

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Comment ranger les DLL ?

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown