IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

pipe / thread /process /abus de language


Sujet :

MFC

  1. #1
    Membre confirm�
    Inscrit en
    Janvier 2006
    Messages
    74
    D�tails du profil
    Informations personnelles :
    �ge : 55

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par d�faut pipe / thread /process /abus de language
    Salut,
    Sous visual C++, je veux faire communiquer deux executables diff�rent.
    J'utilise CreatePipe, ReadFile, WriteFile mais cela ne fonctionne pas.

    Quand je regarde sous la doc windows , il parle de "process" et de "child process".
    J'aimerais savoir si le createpipe peut �tre utilis� pour communiquer entre deux executables diff�rents. (Le handle devrait normalement suffire pour communiquer).
    Attention deux executables, pas deux threads d'un m�me executable.
    Ou faut il utiliser "CreateNamedPipe" pour deux executables diff�rents.
    Merci.

  2. #2
    R�dacteur
    Avatar de farscape
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par d�faut
    salut,
    il faut utiliser les pipe nomm�s.
    voir cet exemple client/serveur:
    http://www.developpez.net/forums/vie...=794950#794950

  3. #3
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Tu peux aussi communiquer avec un pipe anonyme, si au moins l'un de tes programmes ouvre une fen�tre (on va l'appeler A).
    Et ensuite, le programme B:
    • cr�e un pipe anonyme avec CreatePipe()
    • localise la fen�tre de A avec FindWindow()
    • r�cup�re le PID de A avec GetWindowThreadProcessId()
    • ouvre le processus de A avec OpenProcess()
    • Duplique l'un des deux handles du pipe (celui pour le sens voulu) vers le processus A avec DuplicateHandle() (LA fonction de partage de ressources anonymes sous Windows)
    • Ferme le handle original du handle dupliqu� avec CloseHandle()
    • Transmet le handle dupliqu� � A (Avec un PostMessage() ou un SendMessageTimeout() par exemple)
    • Dialogue avec A gr�ce au pipe...

    Et pour finir, chacun ferme le handle de son cot� du pipe, et la communication est fini.

    Comme quoi, communiquer avec les pipes anonymes, c'est facile
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Le probl�me c'est d'obtenir un handle sur le pipe. Avec les pipes nomm�s, c'est simple, c'est via un nom. Pour les pipes anonymes, il faut dupliquer le handle et l'envoyer au 2� process. C'est g�n�ralement effectu� dans le cas process p�re <-> fils car c'est plus simple vu qu'il y a h�ritage possible.
    Note qu'il peut y avoir des probl�mes de droits aussi en fonction des process.

  5. #5
    Membre confirm�
    Inscrit en
    Janvier 2006
    Messages
    74
    D�tails du profil
    Informations personnelles :
    �ge : 55

    Informations forums :
    Inscription : Janvier 2006
    Messages : 74
    Par d�faut
    merci pour votre aide

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 0
    Dernier message: 16/10/2012, 17h32
  2. [THREAD] probleme de pipe
    Par mehdiyassin dans le forum Concurrence et multi-thread
    R�ponses: 5
    Dernier message: 01/07/2004, 13h50
  3. [Process]Execution de process dans un thread
    Par devjava dans le forum Concurrence et multi-thread
    R�ponses: 5
    Dernier message: 18/06/2004, 10h34
  4. R�ponses: 3
    Dernier message: 09/02/2004, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo