std::string を LPCSTR および LPWSTR に変換する
std::string を LPCSTR (定数文字列への長いポインタ) に変換する比較的簡単なプロセスです。これを行うには、std::string オブジェクトの c_str() メソッドを呼び出します。このメソッドは const char * 値を返し、それを LPCSTR に割り当てることができます。
ただし、次の場合、状況は少し複雑になります。 std::string を Unicode (ワイド) 文字列への長いポインタである LPWSTR に変換します。これを行うには、_bstr_t クラスを使用する必要があります。これは、さまざまな種類の文字列間の変換に使用できるテンプレート クラスです。
これは、std::string を変換する方法の例です。 _bstr_t クラスを使用して LPWSTR に変換します:
#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; }
LPSTR、LPCSTR、LPWSTR、および LPCWSTR について
これらの異なる文字列型の名前は混乱を招く可能性がありますが、これらを分解すると、非常に理解しやすくなります。
ご覧のとおり、これらの型の唯一の違いは、定数文字列へのポインターであるかどうかです。名前の L (長い) 部分は無視できます。これは 16 ビット Windows からの名残です。
以上がstd::string を LPCSTR および LPWSTR に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。