Bonjour,
Je recherche actuellement comment envoyer un wchar_t* avec la fonction send en TCP/IP pour envoye des accents au client.
Voici le code qui permet de mettre mes wchar_t* dans le mon buffer.
m_byte etant une string.
J'utilise le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 void CByte::addChar(char* B, size_t t) { for(unsigned int i=0;i<=t;i++) m_byte.push_back(B[i]); } char* CByte::GetByte() { char* buffer = new char[m_byte.size()+1]; for(unsigned int i=0;i<= m_byte.size();i++) buffer[i] = m_byte[i]; return buffer; } template <class T> CByte& operator<<(const T& add) { std::ostringstream Stream; Stream << add; addChar((char*)Stream.str().c_str(), Stream.str().size()); return *this; }
Quand je regarde le contenu du buffer en hexa j'obtiens ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CByte buffer; wchar_t wstr[] = L"arb=="; buffer << wstr;
0x30 0x78 0x63 0x61 0x63 0x66 0x65 0x35 0x38 0x0
Mais comment puis-je obtenir ma chaine wchar_t a partir de la chaine de char retourne par la fonction GetByte() ?
PS : Je ne veux pas convertir mais transformer ma chaine wchar_t en groupe de byte pour l'envoyer sur reseau puis retourner sur 2 byte une fois le groupe de byte recu.
Merci.
Partager