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++/CLR] String Char[256]


Sujet :

VC++ .NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut [C++/CLR] String Char[256]
    Bonjour,
    Je perd patience à chercher tout seul un truc qui doit être tout simple:

    #define Taille (256)
    typedef struct Apdu
    {
    UCHAR data[Taille];
    unsigned short length;
    }Apdu;

    Je reçois un R_Apdu tout frais:

    je veux le mettre en System::String^ pour l'afficher dans un label:

    String ^ Message_label;
    Message_label = "";
    Message_label += R_apdu.length.ToString();

    Quelle ligne écrire pour rajouter les data?
    Message_label += ???



    j'ai testé:
    gcnew String(R_apdu.data);
    et d'autres conversion...
    J'ai même perdu espoir et commencer à écrire mes data dans une fichier pour le relire en String^ mais ça commence à devenir n'importe quoi pour un truc qui doit être tout simple...

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je dirais ceci:
    Code C++/CLI : Sélectionner tout - Visualiser dans une fenêtre à part
    Message_label += gcnew String(R_Apdu.data, 0, R_Apdu.length);
    Avec un encodage si nécessaire, vu que tu fais une conversion char <--> wchar_t.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut
    Merci pour ta réponse,
    Voilà ce que j'ai à la compil:

    error C2664: 'System::String::String(const wchar_t *,int,int)' : cannot convert parameter 1 from 'unsigned char [256]' to 'const wchar_t *'

    C'est l'erreur d'encodage dont tu parlais?

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Essaie comme ça:
    Message_label += gcnew String(reinterpret_cast<char *>(R_Apdu.data), 0, R_Apdu.length);
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut
    J'avais fait un truc bourrin comme ça:

    char* tempbuffer = new char[R_apdu.length+1];
    for(int i=0; i<R_apdu.length; i++)
    tempbuffer[i] = safe_cast<char>(R_apdu.data[i]);
    tempbuffer[R_apdu.length] = (char)0;
    String ^str = gcnew String(tempbuffer);
    Message_label += str;
    this->Label_Texte->Text = str;
    delete tempbuffer;
    delete str;

    Et ça me donne la même chose que ta ligne
    Je vais regardé car même si ça compile, le retour me parait étrange, après l'erreur est peut être ailleurs...
    Je vous tiens au courant!

    Merci encore Médinoc!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 110
    Par défaut
    Voilà je viens de reprendre ce sujet,
    Merci Médinoc ça marche très bien

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

Discussions similaires

  1. replaceAll(String, Char) problème
    Par SheikYerbouti dans le forum Langage
    Réponses: 8
    Dernier message: 05/03/2007, 17h20
  2. Réponses: 3
    Dernier message: 08/11/2006, 09h54
  3. Réponses: 3
    Dernier message: 25/10/2006, 22h54
  4. map<string,char,ConvOrdre>
    Par Stany dans le forum SL & STL
    Réponses: 6
    Dernier message: 03/05/2006, 14h30
  5. Problème avec fonctions et string/char
    Par vdumont dans le forum C++
    Réponses: 6
    Dernier message: 08/04/2006, 16h54

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