conversion - char to wchar_t
Salut tout le monde,
C'est certainement une questions simple pour la plupart d'entre vous, mais je bloque...
Je dois convertir un char en wchar_t... dans la fonction "main" de mon programme, j'ai réussi à le faire grâce à MSDN:
Code:
1 2 3 4 5 6 7 8 9
|
char* orig = "Hello, World!";
// Convert to a wchar_t*
size_t origsize = strlen(orig) + 1;
const size_t newsize = 100;
size_t convertedChars = 0;
wchar_t wcstring[newsize];
mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);
wcout << wcstring << endl; |
Jusque là... OK...
maintenant j'aimerais créer une fonction "convert" qui utilise ce code, en prenant la variable char* en paramètre pour retourner le wchar_t
La raison pour laquelle je veux faire ceci étant simple: je dois convertir à de maintes reprises dans le programme. (projet d'intégration oblige)...
J'ai essayé ceci mais sans succès. Pas de compilation error mais il me retourne toujours "52428" comme valeur pour la variable wchar_t...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
wchar_t convert(char* orig) {
size_t origsize = strlen(orig) + 1;
const size_t newsize = 100;
size_t convertedChars = 0;
wchar_t wcstring[newsize];
mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);
return wcstring[newsize];
//wcout << wcstring << endl;
}
int main(int argc, char *args[])
{
char* orig = "Hello, World!";
wchar_t wcstring = convert(orig);
cout << orig << " --> AS A CHAR..." << endl;
cout << wcstring << " --> AS A WCHAR_T...";
} |
Quelqu'un sait pourquoi?? ce doit être une bêtise vu que ça fonctionne quand je fais ça manuellement dans le "main"...
thanks for ur help :)
Olivier