Données dans DLL accessibles à divers processus (sous dev-C++)

graig2 Messages postés 3 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 14 juin 2005 - 12 juin 2005 à 14:09
graig2 Messages postés 3 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 14 juin 2005 - 14 juin 2005 à 10:05
Salut à tous,



Voici ma toute première question sur ce forum, merci pour votre aide :



Est ce qu'une DLL appelée par divers processus distincts peut conserver
une variable commune aux procesus. Si oui comment et quand
initialiser cette variable (et qui, la DLL dans son propre "main" ...).



Même
si vous n'avez que des infos partielles : notemment sur le fait d'avoir
du static dans une bibli dynamique ... n'hésitez pas.



En fait je vous donne un apperçu du PB plus général.

Une
DLL recevant des infos (et les interprétant) d'une sonde doit les
mettre dans une liste chainée. Ma liste chainée entre ce producteur et
n consommateurs est déjà codée mais j'aimerai qu'elle (la liste) soit
dans une DLL (c'est peut être idiot ?!). Le souci c'est de pouvoir
partager entre n processus une donnée contenue dans une DLL.

C'est peut être impossible, est-ce qu'il faudrait mieux mettre la liste dans un processus à part plutôt que dans une DLL ?!?



Je ne m'y connais que peu sur les DLL. J'ai réussi à créer ma DLL mais
je me suis rendu compte de ce soucis après coup. Je n'ai qu'un modem
56K ce qui limite mes recherches sur internet. Si quelqu'un a des
conseils ou des critiques (constructives) je suis preneur.

3 réponses

graig2 Messages postés 3 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 14 juin 2005
12 juin 2005 à 15:53
Pour info :



J'ai trouvé une piste : l'utilisation de pragma

http://www.cppfrance.com/code.aspx?id=10466



Quelqu'un aurait un exemple avec Dev-c++ ou un conseil ?

Comment déclarer mes fonctions pour que deux processus différents
appelant la DLL n'écrivent/lisent pas en même temps sur ma variable
partagée (ma liste donc ..) pour respecter les exclusions mutuelles
prévues dans les méthodes ?



Y'a quelqu'un ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 juin 2005 à 21:36
Une section partagée (shared) est une solution pour partager des données simples.
Une liste chainée suppose des allocs mémoires et là plus bon, une adresse ne sera plus valide d'un processus à l'autre.

ciao...
BruNews, MVP VC++
0
graig2 Messages postés 3 Date d'inscription samedi 11 juin 2005 Statut Membre Dernière intervention 14 juin 2005
14 juin 2005 à 10:05
Merci pour cette info.

Si je place ma liste chainée dans un processus qui crée des thread pour chaque consommateur sur cette liste. Par quel moyen je fais écrire ma DLL productrice de données dans ce Processus ? via un Pipe nommé ou tout autre système de communication interprocessus ?

je suis intéressé par toutes les bonnes idées
0
Rejoignez-nous