Bonjour, je suis en train d'essayer d'apprendre à utiliser les classes template sous VS2010.

J'ai le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
template <typename T>
class MCODE_Data : public MCODE_Module
{
public:
	MCODE_Data(MCODE_LogManager *_Log);
	virtual ~MCODE_Data();
 
protected:
	T *DataPtr;
}
L'implémentation est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
template <typename T>
MCODE_Data<T>::MCODE_Data(MCODE_LogManager *_Log)
{
	// CONSTRUCTOR
	this->Log = _Log;
}
Tout se compile bien pour ce projet (qui créée une librairie statique).

Dans un projet de test, j'utilise:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MCODE_Data<INT32> *MyData = new MCODE_Data<INT32>(Log);
qui me génère l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1>Dev_MultiCODEView.obj : error LNK2001: symbole externe non résolu "public: __thiscall MCODE_Data<int>::MCODE_Data<int>(class MCODE_LogManager *)" (??0?$MCODE_Data@H@@QAE@PAVMCODE_LogManager@@@Z)
Si je n'utilise pas le template, tout est OK. Donc j'imagine que c'est un problème de syntaxe ou bien je n'ai rien compris.

Merci d'avance pour votre aide.

G13.