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

Visual C++ Discussion :

Problème de lien EXE-->DLL


Sujet :

Visual C++

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut Problème de lien EXE-->DLL
    Bonjour,

    J'ai un exécutable qui m'affiche une IHM (ILogViews) avec différentes options.
    Chacune de ces options est gérée par une DLL.
    Tous les liens fonctionnent sauf un pour lequel je me prend
    Debug Error!
    Program: ...\Mon_Dossier\mon_executable.exe
    abnormal program termination
    La DLL est bien présente dans le répertoire avec les autres DLL.
    Si dans l'exe je trace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IlvPrint("Avant new gg_truc");
    lo_truc = new gg_truc (appli);
    IlvPrint("Après new gg_truc"); // on n’atteint pas cet endroit
    Et dans la DLL, j'essaie de tracer dès le début (la fonction d'initialisation) mais on rentre pas dedans.

    Conclusion : c'est le lien entre l'exe et la dll qui ne marche pas mais pourquoi, comment debugger?

    Pour corser l'affaire, l'exe est appelé via un .bat notamment parce qu'il y a des tas de variables d'environnement à setter.

    Bref, comment puis-je résoudre mon problème?

    merci.

  2. #2
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Si la DLL et ton EXE sont dans le même projet VS, en pas à pas tu devrais rentrer dedans...

    Mauvais chargement de la DLL?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Citation Envoyé par spoutspout Voir le message
    Si la DLL et ton EXE sont dans le même projet VS, en pas à pas tu devrais rentrer dedans...

    Mauvais chargement de la DLL?

    Et bien pour l'instant il y a un projet par lib, dll ou exe
    Pour refaire tout, je dois compiler d'abord toutes les lib et les mettre dans un répertoire inclu dans Visual.
    Ensuite je compile les DLL et je les y met
    Et enfin je compile mon exécutable.

    Tout ça est assez complexe au niveau des éléments qui se servent d'autres éléments.

    Que faire alors (et comme je le disais pour débuger, impossible de lancer l'exe directement en debug, il faut passer par un .bat)

  4. #4
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Citation Envoyé par stof Voir le message
    Et bien pour l'instant il y a un projet par lib, dll ou exe
    Pour refaire tout, je dois compiler d'abord toutes les lib et les mettre dans un répertoire inclu dans Visual.
    Ensuite je compile les DLL et je les y met
    Et enfin je compile mon exécutable.

    Tout ça est assez complexe au niveau des éléments qui se servent d'autres éléments.

    Que faire alors (et comme je le disais pour débuger, impossible de lancer l'exe directement en debug, il faut passer par un .bat)
    C'est bizarre comme manière de procéder....
    Avec les étapes post-génération tu n'as pas moyen de t'en sortir? (car effectivement tu ne rentreras pas en debug dans tes DLL si ton build se fait en 3 fois)

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    759
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 759
    Par défaut
    Pour information, la réponse complète était :

    Comment tester une DLL en debug :
    -------
    Dans un même projet, mettre l'exe principal et la dll à tester.

    Compilation de la DLL :
    Clic droit / Set as active project sur le projet de la dll et faire Rebuild All en mode debug pour construire la DLL debug.
    Déposer cette dll aux côtés de l'exécutable.

    Exécution pas à pas :
    Clic droit / Set as active project sur le projet de l'exécutable (compilé en debug lui aussi) et lancer le debugging.


    Pour l'exe que je devais lancer via un .bat, il a juste fallu mettre toutes les variables d'nvironnement dans les variables d'environnement de l'ordi (fastidieux mais unique moyen).

    Et sinon, ça ne m'a pas permis du tout de résoudre mon erreur par le code (ça plantait à un endroit inexplicable)
    -->finalement, mon erreur était de compiler en "Multithreaded" ou lieu de "Multithreaded DLL".

    Ca a été très dur de m'en sortir, mais si tout ça peut aider quelqu'un...

Discussions similaires

  1. Problème d'édition des liens d'une DLL
    Par Mrblod dans le forum Qt Creator
    Réponses: 6
    Dernier message: 26/08/2011, 15h28
  2. Problème de liens avec utilisation de dll
    Par baub_ dans le forum Visual C++
    Réponses: 1
    Dernier message: 28/01/2011, 02h18
  3. Problème de compilation Exe et Dll
    Par nnj dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 01/06/2007, 18h38
  4. Problème de lien avec wsock32.dll sous g++ (mingw32)
    Par TheShadow dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 11/04/2006, 14h43
  5. Problème de compilation de la DLL du XMLRad
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/04/2003, 16h46

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