Heim > Backend-Entwicklung > C++ > Hauptteil

Wie konvertiere ich einen std::string in LPCSTR und LPWSTR?

Susan Sarandon
Freigeben: 2024-11-04 07:32:02
Original
452 Leute haben es durchsucht

How to convert a std::string to LPCSTR and LPWSTR?

Konvertieren von std::string in LPCSTR und LPWSTR

Konvertieren eines std::string in ein LPCSTR (ein langer Zeiger auf eine konstante Zeichenfolge) ist ein relativ unkomplizierter Prozess. Sie können dies tun, indem Sie die c_str()-Methode für das std::string-Objekt aufrufen, die einen const char *-Wert zurückgibt, den Sie dann einem LPCSTR zuweisen können.

Die Dinge werden jedoch etwas komplizierter, wenn Konvertieren eines std::string in einen LPWSTR, der ein langer Zeiger auf einen (breiten) Unicode-String ist. Dazu müssen Sie die Klasse _bstr_t verwenden, eine Vorlagenklasse, die zum Konvertieren zwischen verschiedenen String-Typen verwendet werden kann.

Hier ist ein Beispiel dafür, wie Sie einen std::string konvertieren können zu einem LPWSTR mithilfe der Klasse _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;
}
Nach dem Login kopieren

LPSTR, LPCSTR, LPWSTR und LPCWSTR verstehen

Die Namen dieser verschiedenen Zeichenfolgentypen können verwirrend sein, aber wenn man sie aufschlüsselt, werden sie viel einfacher zu verstehen.

  • LPSTR – (langer) Zeiger auf String – char *
  • LPCSTR – (langer) Zeiger auf konstanten String – const char *
  • LPWSTR – (langer) Zeiger auf Unicode-(breite) Zeichenfolge – wchar_t *
  • LPCWSTR – (langer) Zeiger auf konstante Unicode-(breite) Zeichenfolge – const wchar_t *

Wie Sie sehen, besteht der einzige Unterschied zwischen diesen Typen darin, ob sie Zeiger auf konstante Zeichenfolgen sind oder nicht. Sie können den L-Teil (lang) der Namen ignorieren – er ist ein Überbleibsel von 16-Bit-Windows.

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen std::string in LPCSTR und 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!