Bonjour

Je passe des valeurs d une application Delphi à une application C#.
Lors de la reception dans l appli C#, le texte affiché ne correspond pas vraiment à celui envoyé :
Affichage C#:
l'id de l'expediteurr¾p
¸°
—é|Ë?ý‚ R¸6É
ÿ%hüv¤$
7.76876924197368E-317
0
Attendu :
l''id de l''expediteur
Une info
Un commentaire
123.456
789.123;
J'ai cherché du côté de [MarshalAs(UnmanagedType.LPStr)] mais l'affichage ne correspond toujours pas...
Côté C# :
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
16
17
18
19
20
21
22
23
24
public struct COPYDATASTRUCT
        {
            public IntPtr dwData;
            public int cbData;
            [MarshalAs(UnmanagedType.LPStr)]
            public string Expediteur;
            [MarshalAs(UnmanagedType.LPStr)]
            public string Information;
            [MarshalAs(UnmanagedType.LPStr)]
            public string Commentaire;
            public double Valeur1;
            public double Valeur2;
 
        }
 
 
mystr = new COPYDATASTRUCT();
                    Type mytype = mystr.GetType();
                    mystr = (COPYDATASTRUCT)m.GetLParam(mytype);
                    Trace(mystr.Expediteur);
                    Trace(mystr.Information);
                    Trace(mystr.Commentaire);
                    Trace(mystr.Valeur1.ToString());
                    Trace(mystr.Valeur2.ToString());
Mon code côté Delphi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
type
  PEnvoiMSG = ^TEnvoiMSG;
 
  TEnvoiMSG = packed record
    Expediteur: string[255];
    Information: string[255];
    Commentaire: string[255];
    Valeur1: double;
    Valeur2: double;
  end;
Le fait que le string soit limité en taille à 255 caractères a t il une influence ?

Je débute et ne comprends absolument pas pourquoi un tel résultats étant donné que les déclarations ont le bon type et que je n ai aucun message d'erreur./avertissement

Merci pour votre aide