Variables globales et DLL

cosmobob Messages postés 700 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 27 janvier 2009 - 22 mai 2004 à 23:58
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 23 mai 2004 à 00:16
je me pose plusieurs questions :
quand on crée une DLL, comment déclarer une variable qui soit globale à toutes les instanciations de la DLL ? (cad si plusieurs processus chargent cette DLL, comment faire pour qu'il aient acces à une meme variable globale?)
comment déclarer une variable globale qui ne soit pas commune aux différentes instanciations ?

comment faire pour avoir une variable qui soit commune a tous les threads d'une meme instanciation de DLL (ex : un processus donné charge une DLL, dans cette DLL une fonction lance plusieurs threads, comment faire pour avoir une variable globale qui soit commune a ces threads?)

quand on déclare une variable globale (qui n'a rien a voir avec une classe) dans le code d'un programme (pas forcément d'une DLL) que représente vraiment le mot clé 'static' ? (ex: je déclare static int salut = 0; )
je croyais connaitre certaines de ces réponses, mais j'ai vu des choses qui montrent que j'avais pas tout pigé !
Donc j'ai besoin de connaitre la vérité !!!

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 mai 2004 à 00:16
#pragma data_seg("Shared")
HWND g_hPrev = 0;
#pragma data_seg()
#pragma comment(linker, "/section:Shared,rws")

Voila une variable globale sur plusieurs instances du meme exe. Il vaut mieux privilegier le FileMapping pour le partage interprocessus depuis une dll.

Richter detaille cela parfaitement.
http://brunews.free.fr/brunews/download/JR4.zip
http://brunews.free.fr/brunews/download/JR4Sources.zip

ciao...
BruNews, Admin CS, MVP Visual C++
0
Rejoignez-nous