std::string を LPCSTR および LPWSTR に変換する
C では、 std::string を LPCSTR または LPWSTR に変換する必要がある場合があります。特定の API で使用する LPWSTR。これは、c_str() メソッドを使用して実現できます。
LPCSTR への変換
std::string を LPCSTR (null で終了する定数へのポインター) に変換するには
<code class="cpp">std::string str = "Hello, world!"; LPCSTR lpcstr = str.c_str();</code>
LPWSTR への変換
LPWSTR (定数ワイド文字配列へのポインター) への変換これは、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>
LPCSTR、LPSTR、LPWSTR、および LPCWSTR について
これらの頭字語は、
を表します。In一般に、LPCSTR と LPCWSTR は定数文字列で使用され、LPSTR と LPWSTR は可変文字列で使用されます。これらの名前の「L」は 16 ビット Windows からのレガシーであり、無視してよいことに注意してください。
以上がC で std::string を LPCSTR および LPWSTR に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。