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

API, COM et SDKs Delphi Discussion :

Partager un bloc mémoire entre deux processus ?


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 540
    Par défaut Partager un bloc mémoire entre deux processus ?
    Bonjour tout le monde

    Plutôt que passer des paramètres à un processus fils via un fichier binaire (ce qui marche bien), peut-on lui passer en paramètre l'adresse d'un bloc mémoire alloué ?

    J'ai testé... et ça plante. Forcément : le bloc mémoire appartient au processus père et il est interdit d'accès par un autre, fût-ce en lecture. Pas moyen d'allouer autrement un bloc mémoire ?

    Merci

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 086
    Par défaut
    CreateFile\CreateFileMapping\MapViewOfFile
    Je ne l'ai pas fait moi encore mais c'est la solution la plus évoquée sur le forum

    Sinon tu peux envoyer des données via WM_COPY_DATA qui permet de recopier une zone mémoire d'un process vers un autre process
    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

  3. #3
    Membre Expert

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    CreateFile\CreateFileMapping\MapViewOfFile
    Je ne l'ai pas fait moi encore mais c'est la solution la plus évoquée sur le forum
    C'est la méthode "propre" prévue par Windows pour créer un bloc mémoire partagé.

    Maintenant, si l'échange est uni-directionnel, il existe d'autres moyens : Créer un pipe, invoker l'autre processus à travers un appel OLE Automation...

    Ou des trucs bien dégueux : lire directement la mémoire d'un autre process avec ReadProcessMemory, ou essayer de tout planter en écrivant dans la mémoire d'un autre process avec WriteProcessMemory.

  4. #4
    Membre Expert
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Par défaut
    ou encore une dll qui se charge de tout ...
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993

Discussions similaires

  1. Partager une instance d'objet entre deux processus
    Par LaurentC33 dans le forum C#
    Réponses: 0
    Dernier message: 14/02/2015, 18h10
  2. Réponses: 4
    Dernier message: 24/02/2014, 19h26
  3. Mémoire partagée entre deux processus
    Par Sutat dans le forum ALM
    Réponses: 8
    Dernier message: 04/02/2012, 13h35
  4. Mémoire commune entre deux processus - shmat
    Par KaNaRette dans le forum C
    Réponses: 8
    Dernier message: 19/10/2011, 19h23
  5. Partage de blocs mémoire entre 2 processus
    Par rolkA dans le forum Windows
    Réponses: 6
    Dernier message: 18/11/2003, 19h08

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