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

VC++ .NET Discussion :

[C++.NET] Conversion Byte*/Byte[]


Sujet :

VC++ .NET

  1. #1
    Membre habitué Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Points : 194
    Points
    194
    Par défaut [C++.NET] Conversion Byte*/Byte[]
    Bonjour,
    jé débute avec le C++ managé et j'ai un petit problème.
    J'ai un byte* que je passe en paramètre à ma fonction. Je voudrais le convertir en Byte[] car je l'utilise avec la fonction Receive de Socket.

    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    bool Reseau::ReceiveCommande(Byte* bstr, const int taille)
    {
       bool res;
    //	Byte[] bstr=new Byte[200]; // taille
       if (isConnected)
    	{
    		int nbRecu;
                     // s est de type Socket*
    		if((nbRecu=s->Receive(bstr,taille,SocketFlags::None))<0)
    			res=false;
    		else
    			res = true;

    Pouvez vous m'aidez svp ?
    Merci

  2. #2
    Nouveau membre du Club

    Inscrit en
    Mars 2003
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 21
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Pour la conversion, je pense qu'il vaut mieux recopier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    bool Reseau::ReceiveCommande(Byte* bstr, const int taille) 
    { 
       bool res; 
       Byte[] buffer = new Byte[taille] ;
     
       for(int i=0 ; i<taille ; i++)
          buffer[i] = bstr[i] ;
    }
    Par contre, je crois que l'utilisation de ton Receive n'est pas bonne, cette méthode ne renvoie pas -1 en cas d'echec.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Byte[] buffer = new Byte[s->Available] ;
    int nbBytes ;
     
    nbBytes = s->Receive(buffer) ;
    res = (nbBytes > 0) ;
    cordialement

  3. #3
    Membre habitué Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Points : 194
    Points
    194
    Par défaut
    cette méthode ne renvoie pas -1 en cas d'echec.
    Non c'est le nombre de byte recu, donc je pourrais mettre <=0 effectivement...

    Sinon, j'ai trouvé pour le passage de Byte*. Je le remplace par Byte bstr[]...

    Merci

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

Discussions similaires

  1. conversion de byte en short
    Par jlassiramzy dans le forum Langage
    Réponses: 17
    Dernier message: 18/08/2006, 20h19
  2. Conversion Integer -> byte[]
    Par La Truffe dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 18h30
  3. Conversion Enum <-> byte
    Par Don ViP dans le forum Langage
    Réponses: 5
    Dernier message: 03/05/2006, 14h51
  4. [VB.NET] Tableau de bytes Lecture/Ecriture
    Par BenoitM dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/04/2005, 09h51
  5. [VB.NET] Conversion int-> bytes sur 4 octets
    Par SteelBox dans le forum Windows Forms
    Réponses: 11
    Dernier message: 09/01/2005, 22h08

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