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:
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 :
Citation:
error C2491 :'Lapin::reference" : définitionde dllimport données membres static non autorisée
chacune suivie de
Citation:
fatal error C1903: impossible de récupérer à partir des erreurs précédentes; arrêt de la compilation
Aussi quelques :
Citation:
error LNK2005: "public: static class Lapin * Lapin::reference" (?ref@Lapin@2PAV1@A) déjà défini(e) dans NomDuneAutreDLL.obj
Et puis aussi ...
Citation:
fatal error LNK1169: un ou plusieurs symboles définis à différentes reprises ont été rencontrés.
Et un petit packet de warning du genre :
Citation:
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 !