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
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
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.
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
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.
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, ...)
Merci à tous pour vos réponses.
Je passerai par un RAMDisque alors.
Partager