Konvertieren von std::string in LPCSTR und LPWSTR
In C ist es manchmal notwendig, einen std::string in LPCSTR oder zu konvertieren LPWSTR zur Verwendung mit bestimmten APIs. Dies kann mit der c_str()-Methode erreicht werden.
Konvertieren in LPCSTR
So konvertieren Sie einen std::string in LPCSTR (einen Zeiger auf eine nullterminierte Konstante). Verwenden Sie einfach die c_str()-Methode:
<code class="cpp">std::string str = "Hello, world!"; LPCSTR lpcstr = str.c_str();</code>
Konvertieren in LPWSTR
Konvertieren in LPWSTR (ein Zeiger auf ein konstantes Breitzeichen-Array) ist etwas komplexer, da es die Verwendung des WCHAR-Typs erfordert:
<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>
LPCSTR, LPSTR, LPWSTR und LPCWSTR verstehen
Diese Akronyme stehen für:
In Im Allgemeinen werden LPCSTR und LPCWSTR mit konstanten Zeichenfolgen verwendet, während LPSTR und LPWSTR mit veränderlichen Zeichenfolgen verwendet werden. Beachten Sie, dass das „L“ in diesen Namen ein Erbe von 16-Bit-Windows ist und ignoriert werden kann.
Das obige ist der detaillierte Inhalt vonWie konvertiere ich std::string in LPCSTR und LPWSTR in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!