Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : double application [ Windows / Autre ] (Rayn3d)

dimanche 20 avril 2008 à 11:52:34 | double application

Rayn3d

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)
@+

dimanche 20 avril 2008 à 12:12:16 | Re : double application

glipper

Membre Club
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).
[ Lien ]
----------------------------------------------------------------------

dimanche 20 avril 2008 à 12:14:48 | Re : double application

glipper

Membre Club
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

dimanche 20 avril 2008 à 16:36:56 | Re : double application

Rayn3d

Réponse acceptée !
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  ?

dimanche 20 avril 2008 à 20:08:16 | Re : double application

juju12

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().



Cette discussion est classé dans : application, double


Répondre à ce message

Sujets en rapport avec ce message

round et mfc [ par dambeaufort ] bonjour,voici mon probleme: je suis sous une application mfc et j'ai une boite Cedit qui me permet d'entrer une valeur numerique (un double pour moi). Convertion long en double [ par kelsey ] J 'aimerai connaître la méthode permettant de transformer un long en double.Merci Queue de messages ?? [ par vinvay ] Est-il possible de faire une queue de messages entre deux programmes console ??J'ai déjà essayé avec les fonctions MQOpenQueue, MQCreateQueue et autre Calque pour application graphique [ par Grand_steak ] Bonjour, J'aimerai un petit coup de main pour développer mon appli. graphique.Je dessine une courbe contenant un nbre important de point.Jusque là, pa OpenGl et gui [ par pac2 ] Salut à tous,J'ai une application OpenGL écrite en C qui tourne. J'aimerais inclure dans cette application une interface graphique pour l'utilisateur racine carrée!!!! [ par dletozeun ] bonjour,j'essais d'utiliser la racine carré en C :sqrt()mais apperement ca ne fonctionne pas et je ne vois pas du tout d'ou ca vient:voici la partie q Segmentation Fault....en traitement d'image [ par psysta ] Bonjour,je suis nouveau dans la programmation en C. J'ai un programme Matlab qui marche bien, et je souhaiterais l'implémenter en C. Le pgm compile bi Ouverture d'un fichier *.txt [ par VCplusp ] Bonjour, je suis un débutant en Visual C++6 et je suis entraint de faire une application pour ouvrir un fichier *.txt en cliquand sur un bouton dans m Comment faire 2 surfaces primaires sur une application DirectDraw [ par xary68 ] Bonjour,Je cherche à utiliser 2 surfaces primaires sur une application DirectDraw.J'en ai une qui est du type LPDIRECTDRAWSURFACE7 et l'autre IDirectD instance unique d'une application [ par gadafla ] J'aimerais qu'en ouvrant autant de documents que je veux, ils aillent tous s'ouvrir sur une seule instance de mon programme, qui lui est multi-fenetre


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,187 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.