none
traduire un programme c++ en c# RRS feed

  • Discussion générale

  • Bonjour ,j'aimerai qu'on m'aide .J'essaye de traduire une ligne de code c++ en c# et quand je compile il me donne cette erreur ""  l'opérateur'*' ne peut pas être appliqué aux opérandes de type 'bool' et 'int'.j'aimerai savoir si la traduction du code c++ en c# est bonne et comment je peux resoudre cette erreur.merci

    voici la code en c++:

    byte c_nbytes;

    WORD w_nbits;

    bool [] b_values;

    byte c_msge;

    if ((8*i_nbytwrt+1) < w_nbits )
         c_msge[13+i] += b_values[8*i+1] * 0x02;


        if ((8*i+2) < w_nbits )
         c_msge[13+i] += b_values[8*i+2] * 0x04;

    voici le programme en c#:

    int  c_nbytes;

    int w_nbits;

    byte c_msge;

    bool b_value;

    for

     

    (int iCount = 0; iCount < c_nbytes; iCount++)

    if

     

    ((8 * iCount + 1) < w_nbits)

     

    c_msge[13 + iCount] += b_value[8 * iCount + 1] * 0x02 ;

     

     

     

    if ((8 * iCount + 2) < w_nbits)

    c_msge[13 + iCount] += b_value[8 * iCount + 2] * 0x04;

    lundi 19 avril 2010 09:54

Toutes les réponses

  • Bonjour,

    Le variable c_msge est de type byte alors que l'ecriture c_msge[13 + iCount] est fausse parceque vous essayez d'utilise le meme variable comme un byte array.

    b_value[8 * iCount + 1] est un boolean c'est à dire true ou false et vous l'assignez à un byte et tu le multiplie par byte !!!

     

    Cette instruction équivalente à essayer de faire byte += bool* byte

    c_msge[13 + iCount] += b_value[8 * iCount + 1] * 0x02 ;

    tu peux resoudre le conflit des type par un implicit casting

    c_msge[13 + iCount] += (byte)b_value[8 * iCount + 1] * 0x02 ;

    Biensure, il faut aussi remplacer

    byte c_msge; par

    byte[] c_msge;

    lundi 19 avril 2010 15:14
  • j'ai fai un implicit casting comme lexemple que vous mavez montre il me dit impossible de convertir un type bool en int.
    mardi 20 avril 2010 07:24
  • Bonjour,

    Je pense que tu pourra obtenir plus facilement une réponse (du code c#) en expliquant directement ton problème (ce que tu veux faire) et non en demandant

    la traduction du code écrit en c++.

    Sinon au cas où tu veux absolument passer par ton code c++, peux tu nous donner un code qui compile et s'exécute sans problème (les variables i_nbytwr et i ne sont pas déclarées et les autres ne sont pas initialisées !!)

     

    Cordialement.

    mardi 20 avril 2010 10:51
    Auteur de réponse
  • merci pour l'aide jai résolu le probleme que j'avais .

    mardi 20 avril 2010 11:17