CONVERTIR UN BSTR EN CHAR* ET UN CHAR* EN BSTR

Boulator Messages postés 2 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 9 juillet 2004 - 9 juil. 2004 à 11:13
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 27 déc. 2007 à 11:31
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18655-convertir-un-bstr-en-char-et-un-char-en-bstr

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 déc. 2007 à 11:31
euh... y'a un soucis, là...

unsigned long length = WideCharToMultiByte( .....
// Pour un BSTR contenant "localhost", nLength en retour vaut 9
strRet = new char[length]; // On créé ici un tableau 9 cases, donc.
// ici on le rempli
length = WideCharToMultiByte ( ......
// nLength vaut ici toujours 9
// Et là, c'est le drame ! on demande à modifier la dixième case d'un tableau qui n'en comporte que 9...
strRet[length] = '\0';

j'ai donc fait:
unsigned long length = 1+WideCharToMultiByte( .....

et ca roule bien mieux...
Boulator Messages postés 2 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 9 juillet 2004
9 juil. 2004 à 11:13
Le code manque de commentaires mais m'a fait gagner de précieuses minutes :D
Merci ;)
Rejoignez-nous