Union de bool et de byte marche pas en C# ?

mouloud42 Messages postés 3 Date d'inscription vendredi 21 novembre 2008 Statut Membre Dernière intervention 11 mai 2009 - 10 mai 2009 à 23:08
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 11 mai 2009 à 08:19
Salut,

Je débute en C#   et je dévellope une interface USB PIC HID  , et je n'arrive pas à faire un union de bool et de byte : comme en C

union
{
   bool b[8];
   byte octet;
}
Entree[8];

pouvoir utiliser Entree[0->7].octet, et Entree[0->7].b[0->7] par exemple car j'ai 64 entrées et autant de sorties.

Apparement le union n'existe pas en C#;
J'ai essayé avec une fonction [StructLayout(LayoutKind.Explicit)] mais ça ne va pas car tout les bools ont la meme adresse memoire.

Si quelqu'un avait une idée.

merci de votre aide

2 réponses

mouloud42 Messages postés 3 Date d'inscription vendredi 21 novembre 2008 Statut Membre Dernière intervention 11 mai 2009
10 mai 2009 à 23:11
mince je crois que j'ai compris

[System.Runtime.InteropServices.StructLayout(LayoutKind.Explicit)]
struct TestUnion
{
[System.Runtime.InteropServices.FieldOffset(0)]
publicbool b[8];

[System.Runtime.InteropServices.FieldOffset(0)]
public byte octet;
}

ça marchera ?

merci
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
11 mai 2009 à 08:19
Salut,

Je ne suis pas un spécialiste de l'interop, mais voici quelques idées:
-Laykind.Auto
-Mettre un FieldOffset de 1
-Lire ce blog: http://blogs.developpeur.org/cyril/archive/2003/10/15/taille-boolean-memoire.aspx

<hr />
-Blog-
-Site Perso-
0
Rejoignez-nous