Problème sur mémoire partagée et mutex
Bonjour,
J'utilise une mémoire partagée et un mutex pour la synchronisation d'accès entre 2 applications.
Voici le code de déclaration sur les 2 applications :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
ReadMemory = new MemoryMapping("TESTCom",sizeof(ShareReadMemory));
ReadMemory->Execute();
ShareReadMemory = (Struct_ReadMemory*)ReadMemory->PtrMapping;
ReadMemory->CloseAccessMemory();
hMutex = CreateMutex(NULL,FALSE,"hMutex");
if (GetLastError() == ERROR_ALREADY_EXISTS)
{
if (hMutex !=NULL)
CloseHandle(hMutex);
} |
J'utilise la classe gestion de mémoire partagée développée dans ce tutoriel , je l'ai modifié pour utilisé une structure.
J'ai réussi à mettre en oeuvre cette classe dans une petite application qui était un simple compteur. Je partageais dans une structure : 1 entier, 1 booléen, et un tableau de long de 10 éléments. La déclaration de ma mémoire partagée et de mon mutex sont identique que le code ci-dessus. Cela fonctionne très bien la mémoire partagée et le mutex ont leur adresses identiques dans les 2 applications.
Maintenant dans l'application actuelle, je dois partagé 10 entiers, 4 booléens et 3 tableaux de long de 255 éléments. Malheureusement, ni mon mutex, ni l'adresse de la mémoire partagée sont correctes dans les 2 applications. Les 2 adresses sont différentes entre les 2 applications.
Avez vous une solution ou un début d'explication car je seche un peu?
Cordialement,