Double application

Résolu
Signaler
Messages postés
6
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
30 décembre 2009
-
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
-
bonjour a tous je voudrais créer deux consoles qui pourraient communiquer emsemble. Mais je ne sais par ou m'y prendre pouvez vos m'aidez ?
SVP (bien sur)
@+

4 réponses

Messages postés
6
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
30 décembre 2009

merci pour tes réponses. J'ai a peu prés saisi le principe theorique mais je ne sais pas comment m'y prendre pour que la premiere fenetre créer la deuxieme  ?
Messages postés
246
Date d'inscription
dimanche 2 juin 2002
Statut
Membre
Dernière intervention
11 septembre 2016
1
Bonjour,

Je ne m'y connais pas beaucoup sur le sujet, mais voila quelques mots clés :

les threads : permet de créer un processus léger. Tu peux alors faire en sorte que ta première console crée la seconde
la fonction sendmessage() : tu peux t'en servir je crois pour faire communiquer deux applications entre elles

Puis sinon, je te poste plus bas quelques truc qui peuvent t'aider. regarde surtout le premier lien, on donne la liste des fonctions utiles pour faire communiquer deux processus.

Voila, je ne peux pas vraiment t'en dire plus, je ne m'y connais pas assez

Bon courage
Glipper

----------------------------------------------------------------------
"Tu peux effectivement utiliser SendMessage pour communiquer entre deux
HWND de processus différents. Pour envoyer des données (plus de 8
octets), il faudra que tu ait une zone de mémoire partagée entre les
deux processus, ou bien utiliser le message WM_COPYDATA"
http://www.cppfrance.com/infomsg_SENDMESSAGE_875748.aspx
----------------------------------------------------------------------
Un process c'est un ensemble file d'éxécution + mémoire.

C'est à dire que 2 process sont faiblement couplés. Ils ont chacun
leur espace mémoire à eux. Pour les coupler il faut utiliser des
mécanismes spécifiques.

 
Les threads d'un process ne sont que des files d"éxécution,
Ils se partagent l'espace mémoire du processus. Comme ins sont
concurrents il faut utiliser des mécanismes (les mutex par exemple, ou
les sections critiques) pour garantir la cohérence des objets en
mémoire.

 
On dit que les threads sont plus légers que les process car
le passage de l'un à l'autre n'implique pas un changement de contexte
important puisque la mémoire est partagée (pour 2 threads d'un même
process).
http://forum.hardware.fr/hfr/Programmation/definition-thread-process-sujet_4734_1.htm
----------------------------------------------------------------------
Messages postés
246
Date d'inscription
dimanche 2 juin 2002
Statut
Membre
Dernière intervention
11 septembre 2016
1
Bon je copie quand meme la liste ici, car dans quelques années le lien sera surement mort...

Glipper

Salut,
Voici en gros les fonctions à utiliser:

Le premier processus utilise:
CreateFileMapping() pour créer la mémoire partagée. Le dernier paramètre donne un nom à ce mapping object.
MapViewOfFile() pour mapper cette zone dans l'espace mémoire du processus. Cette fonction renvoie un pointeur sur la zone partagée.
CopyMemory() pour lire ou écrire dans cette zone.
UnmapViewOfFile() pour dégager la zone de l'espace mémoire du processus.
CloseHandle() pour fermer le handle retourné par CreateFileMapping().

Le deuxième processus utilise:
OpenFileMapping() pour ouvrir l'objet mémoire partagée créé dans le 1er processus. Le dernier paramètre indique le nom du mapping object.
MapViewOfFile() comme pour le 1er processus.
CopyMemory() comme pour le 1er processus.
UnmapViewOfFile() comme pour le 1er processus.
CloseHandle() pour fermer le handle retourné par OpenFileMapping().

http://www.cppfrance.com/infomsg_SENDMESSAGE_875748.aspx
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Mais ta deuxième fenêtre, elle fait partie d'une autre instance du processus non? Parce que de toutes façons tu ne peux avoir qu'une seule console par processus, peu importe le nombre de threads associés.
Si tu veux démarrer un deuxième processus depuis le premier, CreateProcess().