Heim > Backend-Entwicklung > C++ > Hauptteil

Wie konvertiert man zwischen std::string und LPCSTR/LPWSTR?

Linda Hamilton
Freigeben: 2024-11-04 01:27:03
Original
837 Leute haben es durchsucht

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

Konvertieren zwischen std::string und LPCSTR/LPWSTR

Konvertieren von std::string in LPCSTR

So konvertieren Sie einen std::string in LPCSTR (langer Zeiger auf eine konstante Zeichenfolge) aufrufen, rufen Sie einfach die Methode c_str() für das std::string-Objekt auf. Dadurch wird ein Zeiger auf den internen nullterminierten String-Puffer zurückgegeben.

<code class="cpp">std::string myString = "Hello World!";
const char* lpcstr = myString.c_str();</code>
Nach dem Login kopieren

Konvertieren von std::string in LPWSTR

Konvertieren eines std::string in LPWSTR (langer Zeiger auf Konstante breit). string) erfordert ein paar weitere Schritte:

  1. Konvertieren Sie den std::string in einen wstring (breiten String) mit der Multibyte-zu-Wide-Zeichenfunktion 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>
Nach dem Login kopieren
'); MultiByteToWideChar(CP_UTF8, 0, myString.c_str(), myString.size(), &myWstring[0], len);
  1. Rufen Sie einen Zeiger auf den internen nullterminierten Wstring-Puffer ab:

LPCSTR, LPSTR, LPWSTR und LPCWSTR verstehen

Die verschiedenen Begriffe beziehen sich auf Zeiger auf Zeichenfolgen in verschiedenen Kontexten:

  • LPSTR: Zeiger auf eine Einzelbyte-Zeichenfolge
  • LPCSTR: Zeiger auf eine konstante Einzelbyte-Zeichenfolge
  • LPWSTR:Zeiger auf eine Breitzeichenfolge (Unicode)
  • LPCWSTR:Zeiger auf ein konstantes Breitzeichen Zeichenfolge (Unicode)

Das Präfix „LP“ gibt an, dass der Zeiger lang ist, dies ist jedoch in der modernen Windows-Entwicklung nicht mehr relevant.

Denken Sie daran, dass LPWSTR und LPCWSTR nicht das sind Dasselbe. LPCWSTR ist ein Zeiger auf eine konstante Zeichenfolge, während LPWSTR ein Zeiger auf eine modifizierbare Zeichenfolge ist.

Das obige ist der detaillierte Inhalt vonWie konvertiert man zwischen std::string und LPCSTR/LPWSTR?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!