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

Windows Forms Discussion :

[C#] Modifier une zone de mémoire partagée


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 4
    Points : 3
    Points
    3
    Par défaut [C#] Modifier une zone de mémoire partagée
    Bonjour,

    J'ai réalisé deux applications la première en C++, la seconde en C#.

    La première envoie une structure COPYDATASTRUCT à la seconde à l'aide de SendMessage (message WM_COPYDATA).

    Dans la méthode WndProc de la seconde, je récupère la structure sans problème à l'aide de Marshal.PtrToStructure.

    ...Jusque là tout va bien...


    Mon souhait serait de modifier la struture reçu mais j'avoue que je sèche...

    Quelqu'un a une idée ?


    un petit bout du code coté C# :

    La structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [StructLayout(LayoutKind.Sequential)]
    public struct CopyDataStruct
    {
      public int dwData;
      public int cbData;
      [MarshalAs(UnmanagedType.LPStr)] public string lpData;
    }
    La méthode WndProc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
      if(m.Msg == WM_COPYDATA)
      {
        CopyDataStruct structData = (CopyDataStruct)Marshal.PtrToStructure(m.LParam,typeof(CopyDataStruct));
     
        // ici  : j'aimerais modifier les données se trouvant dans m.LParam
     
      }
      base.WndProc(ref m);
    }

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    J'ai essayé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Marshal.StructureToPtr(structData,m.LParam,true);
    Les données sont bien modifiées tant que je suis du coté C# mais coté C++ rien n'est modifié


Discussions similaires

  1. [VBA-W]Inserer et modifier une Zone de texte
    Par marsupoilu dans le forum VBA Word
    Réponses: 5
    Dernier message: 17/04/2019, 09h22
  2. Réponses: 13
    Dernier message: 30/10/2006, 11h16
  3. Modifier une zone de texte désigné par la fonction eval(concat de variables)
    Par Franck2mars dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 19/07/2006, 11h43
  4. ne pas modifier une zone de texte
    Par gailup dans le forum Langage
    Réponses: 3
    Dernier message: 22/06/2006, 19h28
  5. Réponses: 17
    Dernier message: 25/03/2003, 13h45

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