String wString

yserver Messages postés 203 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 8 septembre 2006 - 24 févr. 2006 à 17:40
yserver Messages postés 203 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 8 septembre 2006 - 24 févr. 2006 à 19:43
Merci
Pour une de mes fonctions j'avais besoin de convertir un chaine de caracteres ANSI en UNICODE. J'ai trouvé cela particulièrement compliqué pour ce que c'est. J'ai crée la fonction StringToWstring(string strString).
J'aimerais votre avis sur :
Est il obligé de faire si compliquer et long.
D'autre suggestion d'amelioration.
Pourquoi si je rajoute "delete [] lpszString" avant le return, j'ai un message d'erreur.
Merci

//---------------------------------------------------------------------------
//
// FUNCTION: wstring StringToWstring(string strString)
//
// PURPOSE: Conversion des string en wstring
//
// COMMENTS:
// Convertit un string (ANSI) en un wstring (UNICODE)
// Renvoie 0 si erreur
//
//
//
wstring StringToWstring(string strString)
{
int iResult;
PCHAR cString = new char [strString.size()+1];
PWCHAR lpszString = new WCHAR[strString.size()+1];
std::wstring wstrString;
strcpy(cString, strString.c_str());
iResult = MultiByteToWideChar(CP_ACP, 0, cString, strString.size()+1, (LPWSTR) lpszString, sizeof(strString));
if (iResult == 0)
{
Error_Msg(GetLastError(), "LPWSTR StringToLPWSTR(string strString)", __FILE__, __LINE__);
return 0;
}
delete [] cString;
wstrString.assign(lpszString);
return wstrString;
}

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
24 févr. 2006 à 19:36
C'est l'emploi des 'string' qui rend cela si compliqué, avec des tableaux ordinaires un appel direct à
MultiByteToWideChar et serait réglé.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
yserver Messages postés 203 Date d'inscription lundi 2 août 2004 Statut Membre Dernière intervention 8 septembre 2006
24 févr. 2006 à 19:43
Je te comprend tout a fait, mais l'utilisation des sting m'est util pour le reste. Surtout que je tente de me familiariser avec l'utilisation des string qui apportent tout de meme de nombreuses facilitées.
D'apres ce que tu dis je comprends que de toute facon l'utilisation de MultiByteToWideChar serait de toute facon necessaire?
0
Rejoignez-nous