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 :

[C#] Comment declarer un pointeur Unsafe pour une structure?


Sujet :

C#

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 1
    Points : 2
    Points
    2
    Par défaut [C#] Comment declarer un pointeur Unsafe pour une structure?
    Bonjour,
    J'ai essaie de compiler le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    somedata = new Byte[1024];
     
    unsafe
         {
          fixed ( byte *pData = somedata)
          {
               MY_STRUCT1* ptr = (MY_STRUCT1*)pData;
           }
    mais le compilateur sort avec l'erreur suivante :

    Error 38 Cannot take the address of, get the size of, or declare a pointer to a managed type MY_STRUCT1 ...
    sur la ligne avec l'initialisation du pointer ptr.

    La structure MY_STRUCT1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        [Serializable]
        [StructLayout(LayoutKind.Sequential, Pack=1)]
        public struct MY_STRUCT1 {
            int par1;
            int par2;
     
            [MarshalAs(UnmanagedType.ByValArray, SizeConst=8)]
            public byte [] abParamVal;
       }
    Si la structure ne contient pas la ligne avec le byte-array abParamVal, ca compile.
    Est-ce il y a une explication pour ca ?
    Merci d'avance.
    Abra

  2. #2
    Membre habitué Avatar de del-dongo
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Points : 183
    Points
    183
    Par défaut
    est ce que ca te pose un pb de déclarer ta structure ainsi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	public unsafe struct MY_STRUCT1
    	{
    		int par1;
    		int par2;
    		private fixed byte abParamVal[1024];
    	}
    car si tu procède ainsi, ton code compilera....

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/06/2008, 23h52
  2. Réponses: 7
    Dernier message: 12/05/2008, 17h59
  3. [SQL] Comment feriez-vous cette requête pour une recherche ?
    Par Core8 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/02/2008, 11h58
  4. Réponses: 0
    Dernier message: 31/08/2007, 18h29
  5. Réponses: 6
    Dernier message: 24/03/2006, 18h24

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