Je ne sais pas si il est trop tard ou non, mais la dll que tu utilise as été compilée en C++ je pense.
Lorsque le compilateur passe par la, il fait une "décoration" des noms de fonction, pour bien distingué d'éventuels conflit entre deux fonctions du même nom. La décoration permet d'avoir des noms unique, en rajoutant des symboles et des lettres autour du nom original.
Pour pouvoir appeler cette fonction, il faut soit forcer le compilateur a compiler en C (et non en C++) soit ajouter des mot clés avant le nom de ta fonction pour que le compilateur comprenne que cette fonction doit être compiler en C et non en C++
Personnellement j'ai crée une dll avec visual studio C++ 2010 express et j'ai fait :
extern "C" __declspec (dllexport) TypeFonction __cdecl NomFonction(Argument1, Argument2, ..)
Pour chacune des fonctions que je voulais pouvoir utiliser a l’extérieur de la dll. J'ai crée cette dll avec Visual Studio C++ 2010 Express et l'utilise avec Qt Creator 2.5.0, Qt 4.8.2, et je compile avec Mingw 32 bits.
J'espère que ça aidera quelqu'un a défaut du créateur du fil.
MAJ : J'avais oublier que la dll c'est pas toi qui l'a faite .. Si tu n'a pas la possibilité de recompiler cette dll en rajoutant ces mots clés, la seule solution c'est de compiler avec le même compilateur que celui de la dll, et encore je suis pas certain que la décoration soit interprétée correctement.
Partager