Bonjour,

J'essaie de faire un singleton sous visual c++ dans une dll, qui est appel� par d'autres dll de mon programme.

Le projet seul compile parfaitement, mais au moment de la compilation de la solution compl�te c'est le drame !
Des erreurs � gogo concernant particuli�rement ma r�f�rence d'objet static.

Imaginon mon singleton avec cett classe Lapin :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
class AFX_EXT_CLASS Lapin
{
     public :
     static Lapin* getInstance();
 
     private :
     Lapin();
     static reference Lapin*;
}
 
Lapin* Lapin::reference = NULL;
J'ai donc beaucoup de messages d'erreur du type :

error C2491 :'Lapin::reference" : d�finitionde dllimport donn�es membres static non autoris�e
chacune suivie de

fatal error C1903: impossible de r�cup�rer � partir des erreurs pr�c�dentes; arr�t de la compilation
Aussi quelques :

error LNK2005: "public: static class Lapin * Lapin::reference" (?ref@Lapin@2PAV1@A) d�j� d�fini(e) dans NomDuneAutreDLL.obj
Et puis aussi ...

fatal error LNK1169: un ou plusieurs symboles d�finis � diff�rentes reprises ont �t� rencontr�s.

Et un petit packet de warning du genre :

Warning C2473: "reference� : liaison DLL incoh�rente

Je suis compl�tement largu� par ces erreurs. Est-il au moins possible d'utiliser des variables static dans des dll ?

Bref, si quelqu'un a une id�e je suis preneur !