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 :

Comment Copier un bloc mémoire dans une structure ?


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 27
    Points : 40
    Points
    40
    Par défaut Comment Copier un bloc mémoire dans une structure ?
    Bonjour,

    J'ai un bloc mémoire qui se trouve dans 1 tableau de byte.
    Je voudrais le copier dans une structure.

    //1 - Je crée mon bloc mémoire dans un tableau de byte avec ://byte[] buf_info = new byte[PcbNeeded];
    // 2 je remplis mon tableau
    // ...

    // 3 je créer ma structure qui recevra la copie de mon bloc mémoire.
    DriverInfo = new DRIVER_INFO_3[PcbReturned];

    // 4 - Je copie mon tableau dans ma structure avec la ligne suivante
    // qui ne marche pas
    Marshal.Copy(longBuffer,0, (int []DRIVER_INFO_3, 10);

    Quelle solution employer pour regler mon problème ?
    Puis je essayé avec la fonction Marshal. Marshal.PtrToStructure(
    Comment marche cette fonction ?

    merci d'avance pour votre aide

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2003
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 27
    Points : 40
    Points
    40
    Par défaut
    Bonjour ,j'ai finalement trouvé la fonction pour copier un bloc mémoire dans une structure : j'ai utilisé Marshal.PtrToStructure

    1- Allocation mémoire
    PtrMemoire = Marshal.AllocHGlobal((IntPtr)PcbNeeded);

    2 - Creation de la structure
    DRIVER_INFO_3 ma_structure; //Structure de type DRIVER_INFO_3
    ma_structure = (DRIVER_INFO_3)Marshal.PtrToStructure(PtrMemoire, typeof(DRIVER_INFO_3));

  3. #3
    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 195
    Points
    5 195
    Par défaut
    et pour info, comment remplis tu ton allocation mémoire ?

    The Monz, Toulouse

    EDIT

    J'ai trouvé ma réponse (désolé)

    Marshal.Copy(data, 0, Memoire, data.Length);
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment imbriquer un bloc citation dans une note de bas de page ?
    Par Tom Cantor dans le forum Mise en forme
    Réponses: 3
    Dernier message: 29/12/2010, 13h52
  2. comment copier un tableau excel dans une presentation sur meme format ?
    Par petitchat_miau dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 11/11/2008, 18h30
  3. Réponses: 12
    Dernier message: 16/10/2008, 11h17
  4. Copier une bloc mémoire dans un CDC
    Par kinhelios dans le forum MFC
    Réponses: 3
    Dernier message: 23/02/2007, 09h17
  5. Réponses: 6
    Dernier message: 16/02/2006, 14h40

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