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

Langage Delphi Discussion :

Objet partagé par deux applications


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 310
    Points
    310
    Par défaut Objet partagé par deux applications
    Bonjour

    Je souhaite partager un objet par deux applications (en communicant l'adresse de l'objet via des connections socket...)

    Est-ce que cela pose des problèmes de faisabilité ou de fiabilité?

    Y-a-t'il de meilleur façon de faire?

    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de nostroyo
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 168
    Points : 680
    Points
    680
    Billets dans le blog
    16
    Par défaut
    Bonjour,

    Il faut nous en donner un peu plus sur le contexte technique:

    -les 2 applis sont en Delphi? Si non c'est mort.
    -les 2 applis sont développé avec la même version de Delphi? Si non c'est mort.

    Si tu réponds déjà à ces 2 possibilités, il faut voir ensuite si windows te permets d'accéder à des zones mémoires en dehors de ton processus ce qui me parait improbable.

    Je te conseil pour faire cela de sérialiser/déserialiser ton objet en Json par exemple afin de partager ton objet. Tu peux voir ici.

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Tu peux aussi faire un objet OLE qui grâce à GetActiveOLEObject, tu peux partager le même objet entre deux applications écrite dans deux langages différents
    Je l'ai fait entre Delphi et PHP avec un mécanisme d'échange asynchrone de données via un FileMapping\Mutex\Event mais chaque programme créait leur propre instance de l'objet, c'était nettement mieux pour la gestion des threads, surtout que c'est Delphi qui lançait PHP.exe en ligne de commande et chopait ses Pipes, avec GetActiveOLEObject c'était très lent car le PHP dépendait du Thread Delphi qui passait son temps à attendre des données des pipes
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 310
    Points
    310
    Par défaut
    Merci pour vos réponses

    C'est deux programme delphi de la même version sur la même machine.

    JSON ne me satisfait pas, car je veux séparer mes processus, sans perte de vitesse et grossomodo et j'utilise déjà quelque chose d'équivalent pour communiquer entre d'autres programmes.


    Pour GetActiveOLEObject, ça ne semble pas ça car ce n'est pas très rapide.

    Si je défini une adresse mémoire précise plutôt, est-ce que windows tolère que deux applications ou plus y aient accès?

    Grossomodo, il y a un programme qui génère de l'information, et plein d'autres qui lisent cette information.

  5. #5
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    c'est définitivement impossible, chaque process possède son propre espace mémoire virtuel protégé. Un pointeur n'a de sens qu'au sein d'un même process (EXE et DLL) mais pas d'un process à l'autre.

    il faut partir sur des solutions de communication interprocess (WM_COPYDATA, DDE, OLE, Socket, ...)
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 310
    Points
    310
    Par défaut
    Merci à tous pour vos réponses.

    Je passerai par un RAMDisque alors.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Echange d'objet java entre deux applications
    Par m3allem001 dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2009, 13h20
  2. Sessions partagées par deux serveurs différents
    Par guy777 dans le forum Langage
    Réponses: 1
    Dernier message: 05/09/2008, 14h07
  3. session partagé par deux jsp
    Par ricault dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 15/11/2007, 17h07
  4. Utiliser le même port série par deux applications
    Par homeostasie dans le forum Windows
    Réponses: 1
    Dernier message: 25/01/2007, 21h42
  5. Objets partagés par les noeuds d'un cluster JBoss
    Par jbossdev dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 08/09/2006, 13h48

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