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.
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;
}
J'utilise le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
CByte buffer;
wchar_t wstr[] = L"arb==";
buffer << wstr;
Quand je regarde le contenu du buffer en hexa j'obtiens ceci :
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.