Conversion de std::string en LPCSTR et LPWSTR
Conversion d'un std::string en LPCSTR (un long pointeur vers une chaîne constante) est un processus relativement simple. Vous pouvez le faire en appelant la méthode c_str() sur l'objet std::string, qui renvoie une valeur const char * que vous pouvez ensuite attribuer à un LPCSTR.
Cependant, les choses deviennent un peu plus compliquées lorsque convertir un std::string en LPWSTR, qui est un long pointeur vers une chaîne Unicode (large). Pour ce faire, vous devrez utiliser la classe _bstr_t, qui est une classe modèle qui peut être utilisée pour convertir entre différents types de chaînes.
Voici un exemple de la façon dont vous pouvez convertir un std::string à un LPWSTR en utilisant la classe _bstr_t :
#include <string> #include <comdef.h> int main() { std::string str = "Hello world"; _bstr_t bstr(str.c_str()); // Now you have an LPWSTR that you can use. LPWSTR wide_str = bstr.GetBSTR(); return 0; }
Comprendre LPSTR, LPCSTR, LPWSTR et LPCWSTR
Les noms de ces différents types de chaînes peuvent prêter à confusion, mais si vous les décomposez, ils deviennent beaucoup plus faciles à comprendre.
Comme vous pouvez le voir, la seule différence entre ces types est de savoir s'ils sont ou non des pointeurs vers des chaînes constantes. Vous pouvez ignorer la partie L (longue) des noms : c'est un vestige de Windows 16 bits.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!