lpwstr转string
时间: 2023-09-08 13:08:34 浏览: 218
const char*转LPCWSTR 字符串转换
5星 · 资源好评率100%
将LPWSTR转换为string可以使用WideCharToMultiByte函数。以下是一个示例代码片段:
```cpp
#include <iostream>
#include <string>
#include <Windows.h>
std::string LPWSTRToString(LPWSTR lpwstr)
{
int size = WideCharToMultiByte(CP_UTF8, 0, lpwstr, -1, nullptr, 0, nullptr, nullptr);
if (size == 0) {
// 转换失败,可以根据需要进行错误处理
return "";
}
std::string str(size, 0);
WideCharToMultiByte(CP_UTF8, 0, lpwstr, -1, &str[0], size, nullptr, nullptr);
return str;
}
int main()
{
LPWSTR lpwstr = L"Hello, CSDN!";
std::string str = LPWSTRToString(lpwstr);
std::cout << str << std::endl;
return 0;
}
```
在上面的示例中,LPWSTRToString函数使用WideCharToMultiByte函数将LPWSTR转换为UTF-8编码的string。这样就可以将Unicode字符串转换为标准的ASCII字符串。注意,WideCharToMultiByte函数使用CP_UTF8参数来指定UTF-8编码。
请注意,在使用WideCharToMultiByte函数之前,需要确定输入的LPWSTR字符串是否为NULL终止的。此外,还需要包含Windows.h头文件以获得相关函数和类型的声明。
当然,还有其他方法可以将LPWSTR转换为string,如使用C++的wstring和wstringstream类,或者使用第三方库如iconv、Boost.Locale等。这里只是给出了一种简单的示例方法。
阅读全文