Quelqu'un sait comment convertir BSTR en caractère *? Mise à jour: J'ai essayé de le faire, mais je ne sais pas si c'est vrai ou faux.Convertir BSTR en caractère *
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p);
Quelqu'un sait comment convertir BSTR en caractère *? Mise à jour: J'ai essayé de le faire, mais je ne sais pas si c'est vrai ou faux.Convertir BSTR en caractère *
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p);
Votre code est correct. ConvertBSTRToString
fait juste cela. Comme pour le strcpy
, doit être assez grand pour contenir la chaîne pointée par p
. Notez que puisque ConvertBSTRToString alloue une nouvelle chaîne, vous devrez la libérer quelque part sur la ligne. Une fois que vous avez terminé assurez-vous faire:
delete[] p;
Quelques mises en garde quoique (comme vous pouvez le voir BSTR
documentation on MSDN):
- sur Microsoft Windows, se compose d'une chaîne de caractères Unicode (large ou caractères à deux octets).
- Peut contenir plusieurs caractères null incorporés.
Ainsi, votre strcpy
ne peut pas travailler toujours comme prévu.