Fonction template et classe exportée
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:
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:
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.