[Résolu] Changement de .dll -> cannot load shared library

Changement de .dll -> cannot load shared library [Résolu] - C++ - Programmation

Marsh Posté le 20-05-2011 à 12:35:32    

Bonjour,
 
Débutant en création de .dll avec C++, je rencontre un fort étrange problème, je m'explique :
J'ai un programme exploitant des .dll déjà créées. L'une d'elle avait été mal compilée pour une raison que je ne connais pas, je l'ai donc recompilée correctement avec le make fourni par msys. Le Makefile a été généré par NetBeans. Toute la compilation se passe bien, la création de la .dll aussi, super.
Cependant, lorsque je change l'ancienne .dll avec la nouvelle, lors du lancement du programme, une nouvelle erreur apparait :

Code :
  1. SharedLibrary::load - Cannot load shared library


Par conséquent, le programme ne se lance pas, et je suis toujours coincé (avant il se lançait, mais une fonctionnalité ne fonctionnait pas)
Il semblerait que cette erreur ne soit pas fréquente vu que Google n'a pas été mon ami sur ce coup là... HFR fera t'il mieux ?
Merci d'avance pour votre aide !
 
PS : Et je m'excuse si ce message n'est pas posté dans au bon endroit, je savais pas trop où le mettre autrement...


Message édité par oooook le 24-05-2011 à 14:20:08
Reply

Marsh Posté le 20-05-2011 à 12:35:32   

Reply

Marsh Posté le 20-05-2011 à 16:26:32    

Hmm, ta description est trop vague pour qu'on puisse répondre. Genre :

  • Ce message d'erreur qui l'affiche ? je dirais ton programme, qui semble utiliser un système de plugin via des DLL. Parce que si tu n'as pas accès aux sources, ça va être la merde à débugger.
  • Quelle est l'API que tu utilises pour charger ces DLL ? Win32 avec LoadLibrary() + GetProcAddress() ? Windows permet de retourner des messages d'erreur assez explicites, en tous les cas, plus que "Cannot load shared library".
  • Une erreur possible (et qui génère des messages d'erreur à coté de la plaque) viendrait d'un mauvais mix de msvcrt (voire carrément d'une version manquante), cela dit, si tu utilises le même environnement pour compiler toutes tes DLL, c'est peu probable.


Cela dit, c'est trop vague ta description. Une solution, vu que tu as les sources, serait aussi d'utiliser un débugger. Un peu hardcore si tu débutes cela dit...

Reply

Marsh Posté le 24-05-2011 à 14:19:42    

Merci pour cette réponse, en fait j'ai réussi à m'en sortir avec NetBeans : en fait le makefile n'était pas complet car les paramètres rentrés pour le make étaient erronés (j'oubliais de mettre les .dll qui m'étaient fournis en source)
Bref, merci beaucoup quand même, les astuces que tu m'as donné ne sont pas perdues (surtout Win32 avec LoadLibrary() + GetProcAdress() ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed