Bonjour,
Je suis Sous xp avec VC++ 6 :
J'essaye de lire de l'Unicode dans mon prog sans succès.
Problématique:
J'ai une fonction qui récupère mes Sms depuis le NOKIA 3310 sans problème. Ok.
Mais à l'affichage, tous les caractères dont le codes Ascii est > à 127
ne s'affiche pas correctement dans ma Listctrl.
Explication:
ma fonction ReadFile est la suivante :
DWORD GsmPort::Lire(void* pDonnee, DWORD dwCpt) const
{
ASSERT(EstOuvert());
DWORD dwBytesRead = 0;
ReadFile(m_hPort, pDonnee, dwCpt, &dwBytesRead, NULL);
return dwBytesRead;
}
Lappel de la fonction me retourne le texte des SMS sans les caractères accentués;
et ce tant que ma variable est de type char.
unsigned char cCarLu = '\0';
if Lire(&cCarLu , sizeof(cCarLu )) > 0)
CString strReponse += cCarLu;
si je change le type de cCarLu en TCHAR , je ne récupère plus que des ???
Dans VC++, le paramétrage pour l'unicode est OK.
wWinMainCRTStartup dans projet setting. ainsi que le #define _UNICODE.
Ma ListCtrl. Je lui applique bien la fonte Unicode.
la conversion avec WideCharToMultiByte(CP_ACP, 0, &cCarLu, -1, &szUnicode, 1024, NULL, NULL);
ne donne rien.
Ce que je ne comprends pas, c'est pourquoi le ReadFile Avec TCHAR me renvoie des
valeurs énormes genre 21135, qui se traduisent forcément par des ??? à l'affichage.
Après une longue recherche sur google et Msdn ce week-end , toujours rien.
Si vous avez une piste quelconque, ou des suggestions, je suis tout à fait preneur.
Merci d'avance