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 :
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) { ... }
};
Le problème, c'est que les fonctions template ne peuvent pas être exportées.
Lorsque j'essaie d'utiliser la fonction, j'obtiens cette erreur à la compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
error LNK2001: unresolved external symbol "__declspec(dllimport) public: class void MaClasse::MaFonction(int)" ...
J'en conclu que le comilateur (Microsoft Visual C++ 6) cherche la fonction dans la dll.

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.