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

C++Builder Discussion :

Echange de données inter processus


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 18
    Par défaut Echange de données inter processus
    Bonjour,
    Voilà je cherche à échanger des données entre différents modules de mon application, mais j'aimerais que chaque module reste indépendant, j'ai plusieurs thread qui tourne. Comment puis-je faire pour échanger des données entre les applications et les afficher ou les traiter dans un autre process, sans faire de scrutation interminable à des temps données.
    Je ne sais pas si une base de données pour stocker les données de transit est intéressante ou d'autre type de com?


    Par exemple j'ai une reception de données sur une liaison RS232 qui tourne indépendement du reste et qui renseigne des variables d'état. et d'un autre coté j'ai une fenêtre qui affiche l'état de ses variables, comment faire pour synchroniser les données. La méthode inverse peut se produire je modifie une variable sur l'interface graphique, la données doit alors être envoyé sur la RS.

    J'espère que j'ai été assez clair dans mon explication, sinon n'hésitez pas à me demander des infos complémentaires.

    Merci pour votre aide.

  2. #2
    Membre chevronné
    Avatar de Altau
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    296
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 296
    Par défaut
    Utilisation de messages avec interception dans la boucle de messages Windows (si les données à échanger sont petites et peu nombreuses)

    Dans l'application qui doit recevoir les données :
    Unit1.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #define WM_MONMSG WM_USER + 5
    class TForm1 : public TForm
    {
    __published:
    ...
    private:
    ...
    public:
    ...
    void __fastcall InstanceDeux(TMessage &msg);
    // Ajout d'un type de message personnalisé
    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_MONMSG, TMessage, InstanceDeux);
    END_MESSAGE_MAP(TForm)
    };
    Unit1.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void __fastcall TForm1::InstanceDeux(TMessage &msg) // WM_MONMSG
    {
    ...
    // Utilisation de msg.WParam et msg.LParam envoyées par PostMessage de Unit2 ci-dessous
    Label1->Caption = IntToStr(msg.WParam);
    ...
    }
    Dans l'application qui envoie les données (Unit2.cpp) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    HWND hPrevApp = FindWindow("TForm1", NOM_APPLI); // à adapter en fonction de Form1->Caption
    if (hPrevApp)
      PostMessage(hPrevApp, WM_MONMSG, 0, 0L); // wParam et lParam contiennent les données à envoyer
    A adapter en fonction des besoins, bien sûr.
    Nécessité d'avoir une certaine maîtrise du fonctionnement interne de Windows.

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Dans le tutoriel sur les hook pour C++ Builder et Delphi de developpez.com l'auteur met en place une zone de mémoire partagée.

    Cela pourrait te servir je pense et être plus efficace que des messages Windows.

Discussions similaires

  1. communication inter-processus
    Par benoit70 dans le forum MFC
    Réponses: 1
    Dernier message: 14/04/2005, 09h55
  2. Meilleur protocole pour echange de données client/serveur
    Par melcom_dev dans le forum Développement
    Réponses: 2
    Dernier message: 23/03/2005, 18h28
  3. Telechargement d'internet et echange de données entre 2 pc
    Par Invité dans le forum Développement
    Réponses: 5
    Dernier message: 09/05/2004, 21h22
  4. echange de données php/flash
    Par ramses83 dans le forum Flash
    Réponses: 8
    Dernier message: 18/08/2003, 23h50
  5. [Kylix] Echange de données entre fiches
    Par _dack_ dans le forum EDI
    Réponses: 1
    Dernier message: 01/07/2003, 11h34

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