Passage de Multibyte a Unicode
Bonjour,
Je traduis une fct en Unicode.
Le fct d'origine est
Code:
1 2 3 4 5 6 7 8
| void Combo::AddValue (int val)
{
char buf [10];
std::strstream str( buf, 10);
str << val << std::ends;
AddString (buf);
_values.push_back (val);
} |
Elle me permet d'afficher la valeur entiere val en tant que chaine de caractère (buf).
Ma traduction en Unicode est la suivante
Code:
1 2 3 4 5 6 7 8
| void Combo::AddValue (int val)
{
wchar_t buf [10];
std::wstringstream str( buf, 10);
str << val << std::ends;
AddString (buf);
_values.push_back (val);
} |
Et deviner quoi ? Ca ne marche pas...
Sans doute que wstringstream ne fait pas ce que je pense...
Résumé des épisodes précédents
Merci à tous, cela fct maintennant.
La fct Mulibyte s'écrivait:
void Combo::AddValue (int val)
{
char buf [10];
std::strstream str( buf, 10);
str << val << std::ends;
AddString (buf);
_values.push_back (val);
}
La même en Unicode s'écrit:
void Combo::AddValue (int val)
{
std::wstringstream oss;
oss << val << std::ends;
AddString (oss.str().c_str());
_values.push_back (val);
}
N.B: J'ai bien sûr modifier AddString en conséquence.
Si cela peut intéresser, grace à cette dernière modif, je viens de convertir un programme de multibyte en Unicode (pour le passer sur PDA ou le rendre compatible avec les lib Unicode type Gapidraw) de Reliable Software, Frequency Analyzer qui gère la carte son pour affiche les échantillons et les fréquences.