Transfert de charactères (Unicode, CString)

jefk Messages postés 6 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 12 janvier 2002 - 2 janv. 2002 à 03:03
cs_jpeg Messages postés 40 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 25 février 2004 - 3 janv. 2002 à 09:38
Bonjour tout le monde.
Je viens de mettre au C++ il y a quelques jours (visual studio et mfc), et j'ai une petite question. Mon problème est de transférer des informations via réseau. J'ai écrit un serveur en C sous linux qui écoute et affiche ce que je lui envoie (socket + tcp). Sur mes sockets, j'écrits et je lit des charactères.
De l'autre côté, je viens de faire le client ( winsock + mfc sous vs). Le problème est le suivant : Prendre du texte d'un champ texte, et l'écrire sur la socket, de façon a ce que de l'autre côté, je voie ce que je tappe. Je récupère donc mes données dans une CString que je passe à ma couche réseau, qui envoie des charactères.... Enfin, mal ca envoie n'importe quoi quand le texte vient d'une CString, bien quand ca vient d'un char *.

Le problème serait à priori de convertir le contenu de ma CString en un tableau de chars ascii... J'ai écumé quelques forums, et aparement, c'est pas top top (G pas réussi). Enfin, c'est possible, mais un simple "cast" ne m'avancepas. J'ai lu aussi qu'aparement la CString marche avec des TCHAR, et que les TCHAR peuvent être des wchar_t.

La deuxième solution serait peut-être de refaire le réseaux pour qu'il travaille avec des wchar_t. Est ce que la conversion de CString en wchar_t est possible ? Comment ? Un wchar_t windows est-il le même que sous Linux ?

Avant de me lancer dedans, j'aimerai avoir l'avis éclairé de quelques connaisseurs :)

1 réponse

cs_jpeg Messages postés 40 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 25 février 2004 1
3 janv. 2002 à 09:38
Si je comprend bien, tu souhaite convertir du CString en char* pour l'utiliser avec des sockets ... c'est bien cela ?
Dans ce cas, il te suffit de faire un truc du genre : char* monCharEtoile=LPCTSTR(maString);
maString étant bien sur un CString. Normallement, ça devrait marcher... Et en plus, ça t'évite de redévelopper tout en wchar_t!
0
Rejoignez-nous