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 !