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

Bibliothèques, systèmes et outils C Discussion :

Comment trouver et intégrer bibliothèque/DLL dans programme ?


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut Comment trouver et intégrer bibliothèque/DLL dans programme ?
    Bonjour,

    J'ai créé un petit programme pour le boulot, lorsque je l'exécute sur mon PC de développement je ne rencontre aucun pb, idem sur qq autres PC par contre sur d'autres PC je rencontre le pb suivant.
    "Le programme ne peut pas être initialisé..."
    Il semblerait que ceci serait dû à une ou des DLL non trouvées, or le but est que ce programme DOIT pouvoir être exécuté sur n'importe quel PC (60000 au final).
    Comment dois-je faire pour intégrer les DLL/bibliothèques nécessaires dans mon programme ? De plus, le petit hic est que je ne sais pas exactement quelles sont les DLL qui manqueraient, comment les trouver ? sachant qu'en utilisant "Dependency Walker" j'ai les mêmes DLL manquantes entre mon PC de développement et l'autre PC sur lequel ça ne fonctionne pas.

    Merci pour votre aide.

    PS : J'utilise "Code::Blocks" comme outil de développement sous Windows

  2. #2
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut
    Petite précision, mon programme utilise la super bibliothèque WinLOG trouvé ici.

    Merci aux développeurs de cette bibliothèque.

    PS : Je n'arrive pas non plus à la recompiler, tout plein d'erreur que je ne sais pas déboguer. Du coup, j'utilise les DLLs précompilées et récupérées

  3. #3
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Tu dois distribuer les DLLs avec ton programme. Cela veut dire que tu dois mettre ton EXE et tes DLLs dans un dossier et toujours distribuer ce dossier et non l'EXE tout seul.

  4. #4
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut
    OK C'est bien ce que je fais mais j'ai l'impression que la DLL utilisée (WinLOG) fait appel à une autre DLL qui existe sur mon poste de développement mais pas sur les poste clients, et je ne vois pas du tout laquelle.
    Et le plus compliqué c'est que ça fonctionne correctement sur certains postes mais pas sur d'autres alors pour trouver les DLL dépendantes, c'est archi galère.

  5. #5
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Tu peux toujours ouvrir WinLOG dans Dependecy Walker, mais à mon avis la DLL WinLOG que tu utilises dépend de la CRT (Microsoft C Run-Time Library). Il faudrait donc aussi installer la bonne version de la CRT sur chaque PC sur lequel on veut utiliser WinLOG.

  6. #6
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut
    Comment je fais ça ?
    Comment savoir quelle est cette CRT ?
    En même tps suis pas un expert alors...
    Je ne développe que de tps en tps.
    Et il est vrai que cette librairie est géniale dans le sens où ça va simplifier le debogage des différents postes de travail.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    une autre solution (je ne sais pas comment est le code de la biblothèque en quesion, cependant) :

    ne pas faire une DLL mais compiler en créant une biblothèque statique. Du coup, à l'étape de l'édition de lien, le code est recopié dans le binaire, permettant d'exporter juste le binaire sur les autres machines...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  8. #8
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Citation Envoyé par Korben-Dallas Voir le message
    Comment je fais ça ?
    Comment savoir quelle est cette CRT ?
    Pour la première question, ça va dépendre de la version de la CRT que tu utilises. Pour la deuxième, je te l'ai déjà dit : en regardent dans Dependecy Walker. Par exemple, msvcr80.dll => CRT version 8.0

    Sinon, si tu as les sources de WinLOG et que ça te rébute de la recompiler, tu peux en effet opter pour la solution de Jean (souviron34) voire utiliser directement les sources de WinLOG dans ton projet.

    Donc t'es dans l'embarras du choix maintenant . Mais dis-nous laquelle de ces solutions t'intéresse afin que l'on te fournisse plus de détails.

  9. #9
    Membre régulier
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Points : 81
    Points
    81
    Par défaut
    Bonjour,

    Tout d'abord merci pour vos réponses qui m'ont bien aidé à trouver la solution à mon problème.
    En fait, la bibliothèque utilisée est ici
    Et maintenant j'ai réussi à trouver les fameuses DLL que je dois joindre à mon exécutable afin que mon programme fonctionne correctement.
    Pour celà j'ai exporté la liste des fichiers du répertoire C:\Windows\WinSxS
    (Je savais que les DLL étaient dans ce répertoire mais ne savais pas laquelle)
    Ensuite j'ai installé le Redistribuate de VisualStudio2005 et ai fait un nouvel export afin de voir les différences.
    Là j'avais plusieurs répertoires et fichiers, j'ai donc pu isolé le pb et recopier ces répertoires et fichiers sur une autre machine pour tester et là ça a fonctionné, je savais donc maintenant que les DLL concernées étaient dans cette courte liste de DLL.
    Et puis, quand j'ai vu vos réponses et que vous me parliez de la CRT j'ai donc affiné encore plus en isolant simplement les DLL CRT et là ne fonctionne si je les retire (d'ailleurs j'avais tout retiré exprès), et lorsque je n'ai mis que la CRT et son manifest (qu'il ne faut pas oublié ) là c'est impec ca fonctionne maintenant.
    Je vais donc tester sur d'autres machines et voir ce qui se passe. Mais normalement j'ai donc isolé le pb.
    Je reviens pour vous tenir informé.

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

Discussions similaires

  1. intégrer ses dll dans un exe
    Par athilla dans le forum C#
    Réponses: 3
    Dernier message: 26/05/2008, 14h42
  2. Comment trouver une chaine de caractère dans fichier texte
    Par youssef1989 dans le forum Débuter
    Réponses: 3
    Dernier message: 01/05/2008, 16h45
  3. comment intégrer des dll dans une application c#
    Par imene_t1 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 23/11/2007, 23h40
  4. Réponses: 7
    Dernier message: 27/04/2006, 16h58
  5. Intégrer une dll dans un EXE
    Par Akim13 dans le forum Langage
    Réponses: 5
    Dernier message: 15/09/2005, 02h11

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