RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 SEGFAULT après passage en DLL

Forum : C & C++ - CONSOLE
Sous Catégorie : Console
Type du sujet : Sujet Normale
FAQ : FAQ C & C++ - CONSOLE

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C & C++ - CONSOLE

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
lovejava
Membre du club
Chef de projet(s) :
- Hughobot

Avatar de lovejava
Inscrit : 13/07/2004
Messages : 640
Message
#142122
Posté le 01/09/07 à 13:53
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 sort 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...
__________________________
Lorsque touts les arbres auront été coupés, Lorsque touts les animaux auront été chassés, Lorsque touts les poissons auront été pêchés;
Alors l'homme découvrira que l'argent ne se mange pas.
------ |_o/e _|a/a---------

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

lovejava
Membre du club
Chef de projet(s) :
- Hughobot

Avatar de lovejava
Inscrit : 13/07/2004
Messages : 640
Message
#142136
Posté le 01/09/07 à 17:01
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)
__________________________
Lorsque touts les arbres auront été coupés, Lorsque touts les animaux auront été chassés, Lorsque touts les poissons auront été pêchés;
Alors l'homme découvrira que l'argent ne se mange pas.
------ |_o/e _|a/a---------

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

vortex666
Modérateur :
- C & C++
- OpenGL
- Delphi
Chef de projet(s) :
- Vortez3DEngine

Avatar de vortex666
Inscrit : 20/09/2004
Messages : 483
Message
#142139
Posté le 01/09/07 à 18:15
D'apres ton message d'erreur, ca avais l'air d'avoir rappport avec la class strings, mais j'ai pas vu ton code alors je dit ca comme ca!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

lovejava
Membre du club
Chef de projet(s) :
- Hughobot

Avatar de lovejava
Inscrit : 13/07/2004
Messages : 640
Message
#142558
Posté le 09/09/07 à 21:22
c'est ce que je pensais au début, mais en réfléchissant ça m'étonnerait que la STL soit boguée...à savoir que j'utilisais les string de façon tout à fait normale et simple, sans accès direct aux données (genre chaine[30]) ou autres lubies qui auraient pu créer une segfault...
et puis en cherchant sur internet j'ai trouvé d'autres personnes qui avaient eu le même problème (conflict de nom) et dont le compilateur signalait également l'erreur sur la classe string

enfin bon ^^ en tout cas maintenant ça marche impec (c'était pour le projet hughobot d'ailleurs ) donc ça n'a plus vraiment d'importance, mais bon, toujours une petite curiosité pour les erreurs résolues en pratique mais non en théorie...
__________________________
Lorsque touts les arbres auront été coupés, Lorsque touts les animaux auront été chassés, Lorsque touts les poissons auront été pêchés;
Alors l'homme découvrira que l'argent ne se mange pas.
------ |_o/e _|a/a---------

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C & C++ - CONSOLE



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.