Bonjour.
Pour un de mes projets écrit avec code::blocks + wxWidget + MinGW, tous dans leur version récente, je dois faire appel à des fonctions disponibles dans une DLL fournie par un tiers.
Je dispose du fichier DLL, du fichier .h des fonctions disponibles, du fichier LIB, et après quelques efforts, j'ai réussi à extraire le fichier DEF avec l'outil dlltool de MinGW32
Je n'arrive pas à linker correctement cette DLL dans mon projet. L'édition de lien me donne systématiquement une erreur à chaque appel de fonction dans la DLL: undefined reference to `_imp___Z16User_CloseScreeni@4'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4LIBRARY "EQ2008_Dll.dll" EXPORTS User_CloseScreen@@YGHH@Z User_ReadScreen@@YGHHPAUHDC__@@@Z
Mon projet est compilé avec MinGW, donc j'utilise des fichiers .a pour linker, alors que la DLL est livré avec un fichier.LIB
Ce que j'ai essayé:
- renommer le .LIB en .a: ne marche pas
- inclure la DLL dans les bibliothèque à linker (avec les autres .a du projet): ne marche pas
- extraire de la DLL le .a avec reimp.exe: ne marche pas. J'obtiens un .a vide
Bref, je sèche. Avant de modifier le projet pour appeler directement les fonctions en lisant la DLL en dynamique lors de l'exécution (mon plan B !), j'aimerai savoir si vous avez des idées sur mon problème ?
Comment convertir un .LIB ou .def en .a compatible avec MinGW ?
Peut-on dans code::blocks directement linker une DLL sans le .a ?
Partager