Double application

Résolu
Rayn3d Messages postés 6 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 30 décembre 2009 - 20 avril 2008 à 11:52
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 20 avril 2008 à 20:08
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

Rayn3d Messages postés 6 Date d'inscription jeudi 17 avril 2008 Statut Membre Dernière intervention 30 décembre 2009
20 avril 2008 à 16:36
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  ?
3
glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 1
20 avril 2008 à 12:12
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
----------------------------------------------------------------------
0
glipper Messages postés 246 Date d'inscription dimanche 2 juin 2002 Statut Membre Dernière intervention 11 septembre 2016 1
20 avril 2008 à 12:14
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
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
20 avril 2008 à 20:08
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().
0
Rejoignez-nous