Bonjour à tous,
je veux créer deux processus qui communique entre eux via mémoire partagée.
je ne sais pas comment le faire ?
Version imprimable
Bonjour à tous,
je veux créer deux processus qui communique entre eux via mémoire partagée.
je ne sais pas comment le faire ?
Bonjour,
Tu devrais peut-être poser ta question sur le forum dédié à Windows, mais ta réponse tu la trouveras peut-être ici:
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Si ton but est de permettre à deux applications Windows de communiquer entre elles, la façon la plus simple que j'ai trouvée, c'est d'y aller avec un fichier "ini" commun*. Pendant longtemps, j'ai utilisé le protocole UDP (avec l'adresse locale 127.0.0.1).
* lien:
http://guytprog.blogspot.ca/2012/04/...s-entre-2.html
J 'ai commencé par cet exemple, mais ca marche pas pour le deuxième processus:
"could not open file mapping (2)"
Excuse-moi, je pouvais pas deviné que tu avais essayé l'exemple de Microsoft, qui fonctionne pour moi (Builder C++, Windows XP), je viens de le tester. À mon avis ton bug se situe dans la fin du code de "First Process":
Dans mon cas, j'ai remplacé le "getch" par une petite boite modale (ShowMessage) pour me signaler que les données sont prêtes à être lues. Il faut que l'autre process les lisent avant d'appuyer sur ok, sinon "UnmapViewOfFile" fait le ménage et l'autre process me donne le message d'erreur ""could not open file..."Code:
1
2
3
4
5
6
7
8
9
10 CopyMemory((PVOID)pBuf, szMsg, (_tcslen(szMsg) * sizeof(TCHAR))); _getch(); // <------- UnmapViewOfFile(pBuf); CloseHandle(hMapFile); return 0;
Enfin, c'est une supposition, je peux pas deviner ton code.
Merci beaucoup pour ton aide :))
le problème est résolu