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 à 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager