Bonjour,
J'ai une classe regroupant l'ensemble des paramètres globaux d'une application (il s'agit de T_Parametre dans le code).
Voulant ces paramètres disponibles de partout, j'ai voulu mettre sa déclaration dans stdafx.h.
Pour ne pas avoir une erreur de compilation, je suis obligé de lui donner l'attribut static, ce qui correspond tout à fait à mon souhait, mais je ne comprends pas pourquoi (puisqu'il me semble que par définition les objets ou variables définis en dehors de tous bloc de code sont statiques).
Je veux rendre disponible cette structure dans une DLL externe : je me bats avec __declspec(dllexport) mais cette directive d'exportation semble contradictoire avec la clause static (doit avoir une liaison externe pour pouvoir être importé/exporté).
Si je supprime static, le compilateur est content mais le linker m'annonce de nouveau que class T_Parametre * Parametres est déjà définie (donc la même erreur qui m'a fait ajouter static).
Est-ce qu'un barbu pourrait tenté de m'expliquer ces 2 erreurs ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // stdafx.h #ifndef _DEPART_H_ #define _DEPART_H_ static __declspec(dllexport) T_Parametre* Parametres=new(T_Parametre); #endif
Merci
Partager