Maison > Article > développement back-end > Comment convertir std::string en LPCSTR et LPWSTR en 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>
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>
Comprendre LPCSTR, LPSTR, LPWSTR et LPCWSTR
Ces acronymes signifient :
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!