Bonjour a tous,
Je me suis d�cid� a m'insrire sur ce forum car j'ai un gros probl�me existanciel li� au dlls.
En effet depuis ma premi�re implementation de dll l'existance des static dans mon code a �t� remis en cause.
Je sais d'un amis que la dll a sa propre m�moire et que donc quand un static est declar� dans une classe il en existe deux instances. Une dans la library static (ou .exe) et une dans la zone m�moire de la dll. Ma premi�re implementation ayant confirm� le probl�me, je me suis dit que la solution �tait d'initialiser deux fois le static dans le cas des singletons.
Sa marche dans le cas des singletons, car le static ne change pas au cour de l'execution du programme.
Mais quid des statics a valeur variable comme par exemple :
Comment faut il faire ? Y a t'il une option de compilation pour que les statics soit globaux ? Ou alors la solution est elle de ne pas utiliser les static dans les dlls ?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #ifdef STATIC # define DYN_LIBRARY #else # ifdef DLL_EXPORT # define DYN_LIBRARY __declspec(dllexport) # else # define DYN_LIBRARY __declspec(dllimport) # endif #endif class DYN_LIBRARY Object { static Int32 _NbObjects; // Number of objects in the scene Object(); }; Object:: Object() { ++_NbObjects; }
Merci � vous,
--
Al'
Partager