Données dans DLL accessibles à divers processus (sous dev-C++)
graig2
Messages postés3Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention14 juin 2005
-
12 juin 2005 à 14:09
graig2
Messages postés3Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention14 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.
A voir également:
Données dans DLL accessibles à divers processus (sous dev-C++)
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 ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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.
graig2
Messages postés3Date d'inscriptionsamedi 11 juin 2005StatutMembreDernière intervention14 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 ?