Maison > développement back-end > C++ > Comment convertir entre std :: string et LPCSTR/LPWSTR ?

Comment convertir entre std :: string et LPCSTR/LPWSTR ?

Linda Hamilton
Libérer: 2024-11-04 01:27:03
original
960 Les gens l'ont consulté

How to Convert Between std::string and LPCSTR/LPWSTR?

Conversion entre std::string et LPCSTR/LPWSTR

Conversion std::string en LPCSTR

Pour convertir un std::string en LPCSTR (pointeur long vers une chaîne constante), appelez simplement la méthode c_str() sur l'objet std::string. Cela renverra un pointeur vers le tampon de chaîne interne terminé par un caractère nul.

<code class="cpp">std::string myString = "Hello World!";
const char* lpcstr = myString.c_str();</code>
Copier après la connexion

Conversion de std::string en LPWSTR

Conversion d'un std::string en LPWSTR (pointeur long vers une largeur constante string) nécessite quelques étapes supplémentaires :

  1. Convertissez le std::string en wstring (chaîne large) à l'aide de la fonction de caractères multi-octets vers large MultiByteToWideChar():
<code class="cpp">int len = MultiByteToWideChar(CP_UTF8, 0, myString.c_str(), myString.size(), NULL, 0);
wstring myWstring(len, '<pre class="brush:php;toolbar:false"><code class="cpp">const wchar_t* lpwstr = myWstring.c_str();</code>
Copier après la connexion
'); MultiByteToWideChar(CP_UTF8, 0, myString.c_str(), myString.size(), &myWstring[0], len);
  1. Obtenez un pointeur vers le tampon wstring interne terminé par un caractère nul :

Comprendre LPCSTR, LPSTR, LPWSTR et LPCWSTR

Les différents termes faire référence à des pointeurs vers des chaînes dans différents contextes :

  • LPSTR : Pointeur vers une chaîne de caractères à un octet
  • LPCSTR : Pointeur vers une chaîne de caractères constante d'un octet
  • LPWSTR: Pointeur vers une chaîne de caractères large (Unicode)
  • LPCWSTR: Pointeur vers un caractère large constant string (Unicode)

Le préfixe "LP" indique que le pointeur est long, mais cela n'est plus pertinent dans le développement Windows moderne.

N'oubliez pas que LPWSTR et LPCWSTR ne sont pas les même. LPCWSTR est un pointeur vers une chaîne constante, tandis que LPWSTR est un pointeur vers une chaîne modifiable.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal