Bonjour à tous,
Je rencontre un problème avec les fonctions template de classes exportées. J'ai fais pas mal de recherches mais rien ne correspond à mon cas. Je vous expose le problème :
Je souhaite exporter une classe (non template) contenant des fonctions template, comme ceci :
Le problème, c'est que les fonctions template ne peuvent pas être exportées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class __declspec(dllexport) MaClasse { public: template <class T> void MaFonction(T Param) { ... } };
Lorsque j'essaie d'utiliser la fonction, j'obtiens cette erreur à la compilation :
J'en conclu que le comilateur (Microsoft Visual C++ 6) cherche la fonction dans la dll.
Code : Sélectionner tout - Visualiser dans une fenêtre à part error LNK2001: unresolved external symbol "__declspec(dllimport) public: class void MaClasse::MaFonction(int)" ...
Comment peut-on alors spécifier au compilateur de ne pas chercher cette fonction dans la dll, mais de la compiler directement à partir du fichier, sachant qu'elle est forcément inlinée ? Tout en gardant le __declspec(dllexport) devant le nom de la classe.
J'espère que j'ai été assez clair, si vous voulez plus de précision, n'hésitez pas à me demander.
Merci d'avance.
Partager