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 :

SEGFAULT après passage en DLL


Sujet :

Windows

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut SEGFAULT après passage en DLL
    Bonjour,

    Je programme une application qui doit pouvoir charger des plugins dynamiquement via des librairies DLL. J'avais jusque là fait mes classes etc... directement pour l'exécutable. Mais quand j'ai commencé à faire la partie pour les plugin, je me suis aperçu que les plugins devaient pouvoir accéder à des classes utilisées par mon programme.

    Pour ne pas que les plugins aient à ré-inclure chacun le même code de sorte qu'ils pèsent 300Mo chacun, j'ai fait une DLL avec les fichiers sources de mon programme (je n'ai gardé que le main en fait), pour que la DLL puisse être utilisée par les plugins et ainsi alléger leur taille.

    Seulement, depuis que j'utilise la DLL, alors que le code est STRICTEMENT INCHANGE, et que le linkage est fait au moment de la compilation (sans utiliser LoadLibrary etc...), j'obtiens un signal segfault lors de l'exécution de mon programme.

    En passant le déboggeur, j'ai le message d'erreur suivant :
    "#0 0x100a09f3 std::string::c_str (???)
    #1 0x0040c399 main (???)
    "
    sans avoir ni la ligne ni même le module qui a provoqué l'erreur...ce qui n'est pas particulièrement explicite...
    Je ne sais pas si ça influe, mais ma dll utilise d'autres DLL, toujours avec un linkage à la compilation.

    Si quelqu'un a une idée...

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 21
    Points : 18
    Points
    18
    Par défaut
    Finalement j'ai résolu le problème, mais ça reste assez bizarre ! Cela venait du fait que j'utilisais une classe qui était également dans la DLL, mais au lieu d'importer celle-ci, j'en avais une propre définition avec des fonctions template (ce qui était impossible dans la DLL, d'où la non-utilisation de celle de la DLL) dans mon programme.

    En renommant la classe et en changeant quelques truc, rien n'y fait : j'ai bel et bien été obligé d'utiliser la classe contenue dans la DLL, et là seulement il n'y a plus eut d'erreur. Ca marche mais je n'ai toujours pas trouvé d'explication...(surtout après renommage de la classe considérée)

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

Discussions similaires

  1. a:hover apres passage souris
    Par kahya dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 09/06/2006, 16h51
  2. Problème de compilation après passage v5 -> v6
    Par zi_omnislasher dans le forum C++Builder
    Réponses: 1
    Dernier message: 12/04/2006, 10h13
  3. affichage image après passage de la souris sur bouton
    Par nerser dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/01/2006, 22h53
  4. Problème après "passage" en xhtml1.0
    Par Becafuel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 16/12/2005, 14h19
  5. Réponses: 1
    Dernier message: 28/10/2005, 09h37

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