Maison > développement back-end > C++ > le corps du texte

Comment convertir std::string en LPCSTR et LPWSTR en C ?

DDD
Libérer: 2024-11-04 01:56:30
original
292 Les gens l'ont consulté

How to Convert std::string to LPCSTR and LPWSTR in C  ?

Conversion std::string en LPCSTR et LPWSTR

En C , il est parfois nécessaire de convertir un std::string en LPCSTR ou LPWSTR à utiliser avec certaines API. Ceci peut être réalisé en utilisant la méthode c_str().

Conversion en LPCSTR

Pour convertir une std::string en LPCSTR (un pointeur vers une constante terminée par un zéro tableau de caractères), utilisez simplement la méthode c_str() :

<code class="cpp">std::string str = "Hello, world!";
LPCSTR lpcstr = str.c_str();</code>
Copier après la connexion

Conversion en LPWSTR

Conversion en LPWSTR (un pointeur vers un tableau de caractères larges constant) est légèrement plus complexe car il nécessite l'utilisation du type WCHAR :

<code class="cpp">std::string str = "Hello, world!";
size_t length = str.length();
WCHAR* buffer = new WCHAR[length + 1];
MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, buffer, (int)length);
LPWSTR lpwstr = buffer;</code>
Copier après la connexion

Comprendre LPCSTR, LPSTR, LPWSTR et LPCWSTR

Ces acronymes signifient :

  • LPCSTR : Pointeur long vers STRing constant (un pointeur vers un tableau de caractères constant)
  • LPSTR : Pointeur long vers STRing (un pointeur vers un tableau de caractères)
  • LPWSTR : Pointeur long vers Wide STRing (un pointeur vers un tableau de caractères larges)
  • LPCWSTR : Pointeur long vers une STRing large constante (un pointeur vers un tableau de caractères larges constant)

Dans En général, LPCSTR et LPCWSTR sont utilisés avec des chaînes constantes, tandis que LPSTR et LPWSTR sont utilisés avec des chaînes mutables. Notez que le « L » dans ces noms est un héritage de Windows 16 bits et peut être ignoré.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!