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

C# Discussion :

Byte[] to struct


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut Byte[] to struct
    Bonjour, je bute, je ne fais pas souvent du 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
            [StructLayout(LayoutKind.Sequential, Pack = 1)]
            public struct typ_val_instant
            {
                Int32 ValConvCapt;
                Int32 ValPdsCapt;
                Byte EtatCapt;
            };
     
          [StructLayout(LayoutKind.Sequential, Pack = 1)]
          public struct SDO_Instant
          {
            public typ_val_instant[] Capteur;
          };
     
     
     
     
     
            if (TabSDOInstant.Capteur == null)
                   TabSDOInstant.Capteur = new typ_val_instant[20];
                //Finsi
     
                /* Première méthode*/
                /*GCHandle handle = GCHandle.Alloc(SDO_ValPMnet.SDO_buffer, GCHandleType.Pinned);
                TabSDOInstant = (SDO_Instant)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(SDO_Instant));  
                handle.Free();*/
     
     
                int length = Marshal.SizeOf(TabSDOInstant);
                IntPtr ptr = Marshal.AllocHGlobal(length);
                Marshal.Copy(SDO_ValPMnet.SDO_buffer, 0, ptr, length);
                TabSDOInstant = (SDO_Instant)Marshal.PtrToStructure(Marshal.UnsafeAddrOfPinnedArrayElement(SDO_ValPMnet.SDO_buffer, 0), TabSDOInstant.GetType());
                Marshal.FreeHGlobal(ptr);
    au new c'est alloué mais sa repasse à null après le:
    TabSDOInstant = null après l'affectation.
    SDO_Buffer est un byte[] et j'aimerai le mettre dans TabSDOInstant qui est un Tableau de struct pour traiter mon buffer de reception dans une datagridview.


    si vous voulez bien m'aidez

    cdt


    merci de vos réponses

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    Tiens, regardes là :


    Un lien qui va bien

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    même résultat...
    que précédent, la méthode était casi identique. je fais peut être une erreur dans l'utilisation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                GCHandle pinnedPacket = GCHandle.Alloc(SDO_ValPMnet.SDO_buffer, GCHandleType.Pinned);
                TabSDOInstant = (SDO_Instant)Marshal.PtrToStructure(
                    pinnedPacket.AddrOfPinnedObject(),
                    typeof(SDO_Instant));
                pinnedPacket.Free();
    merci de ta réponse

Discussions similaires

  1. Marshalling struct décallage 2 bytes.
    Par raphael_kindt dans le forum C#
    Réponses: 11
    Dernier message: 01/09/2011, 16h15
  2. [Dvp.NET|A intégrer] [C#]Conversion struct <-> byte[]
    Par smyley dans le forum Contribuez
    Réponses: 2
    Dernier message: 14/12/2008, 14h04
  3. [C#] Conversion d'un byte[] en byte *
    Par karsh dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/12/2004, 10h53
  4. Unrecognized option -fnative-struct
    Par copyallright dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 01/05/2003, 12h25
  5. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25

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