ホームページ  >  記事  >  バックエンド開発  >  C で std::string を LPCSTR および LPWSTR に変換する方法

C で std::string を LPCSTR および LPWSTR に変換する方法

DDD
DDDオリジナル
2024-11-04 01:56:30360ブラウズ

How to Convert std::string to LPCSTR and LPWSTR in C  ?

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 について

これらの頭字語は、

を表します。
  • LPCSTR: 定数 STRing への Long ポインタ (定数文字配列へのポインタ)
  • LPSTR: STRing への Long ポインタ (文字配列へのポインタ)
  • LPWSTR: Wide STRing への Long ポインタ (ワイド文字配列へのポインタ)
  • LPCWSTR: Constant Wide STRing への Long ポインタ (定数ワイド文字配列へのポインタ)

In一般に、LPCSTR と LPCWSTR は定数文字列で使用され、LPSTR と LPWSTR は可変文字列で使用されます。これらの名前の「L」は 16 ビット Windows からのレガシーであり、無視してよいことに注意してください。

以上がC で std::string を LPCSTR および LPWSTR に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。