PADYVEN
Messages postés69Date d'inscriptionlundi 10 février 2003StatutMembreDernière intervention29 août 2012
-
9 mars 2009 à 18:58
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
9 mars 2009 à 19:38
bonjour,
bon j'ai un probleme tout simple je pense qui concerne le file mapping
je veux partager des données entre deux applications
c'est données sont en deux partie
et apres un tableau de structure ou disons plus simple un tableau de int
int Valeur[NbInfo]
dont le nombre d'elements est le ULong NbInfo contenu dans la structure precedante(ULong=unsigned long int)
j'ai reussi a mapper la structure puis naivement j'ai essayer de mapper la suite donc mon tableau.
et la sa plante(le pointeur de mDataValue est NULL).
il ne faut pas faire gaffe a l'ecriture en elle meme elle est surement fausse (c'est juste pour expliquer)
je part du fait que j'ai 20 int dans mon tableau
en lisant la doc de MapViewOfFile j'ai vu que les offset devait tenir compte de la granularité de la memoire du systeme chez moi 0x10000 . j'ai essaye de chercher des exemples mais j'ai pas tout compris
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 9 mars 2009 à 19:38
Tu veux y mettre une struct Partage_s + 1 tableau de 20 int, c'est ça ?
Si oui,
HANDLE hFileMap = CreateFileMapping(INVALID_HANDLE_VALUE,0,PAGE_READWRITE,0,sizeof(Partage_s) + 20 * sizeof(int),"filemap");
VA BON.
tu voudrais donc un pointeur *int sur le tableau et 1 pointeur sur la struct:
Partage_s *ppartage;
int *pint;
ppartage = (Partage_s*) MapViewOfFile(hFileMap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
pint = (int*) (ppartage + 1);
Si tu places ton tableau int[] juste derriere la struct, devrait aller.