将 std::string 转换为 LPCSTR 和 LPWSTR
在 C 中,有时需要将 std::string 转换为 LPCSTR 或LPWSTR 用于某些 API。这可以使用 c_str() 方法来实现。
转换为 LPCSTR
将 std::string 转换为 LPCSTR(指向以 null 结尾的常量的指针)字符数组),只需使用 c_str() 方法:
<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中文网其他相关文章!