string LPWSTR互转
时间: 2024-06-18 13:06:04 浏览: 123
string和LPWSTR是两种不同的字符串类型,string是标准C++库中的字符串类型,而LPWSTR是Windows API中的Unicode字符串类型。
为了将string类型转换为LPWSTR类型,可以使用MultiByteToWideChar函数,它可以将多字节字符串(如ANSI字符串)转换为Unicode字符串。
以下是一个将string类型转换为LPWSTR类型的示例代码:
```
#include <windows.h>
#include <string>
LPWSTR StringToLPWSTR(const std::string& s)
{
int len = MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, NULL, 0);
LPWSTR result = new WCHAR[len];
MultiByteToWideChar(CP_UTF8, 0, s.c_str(), -1, result, len);
return result;
}
```
反过来,将LPWSTR类型转换为string类型,可以使用WideCharToMultiByte函数,它可以将Unicode字符串转换为多字节字符串。
以下是一个将LPWSTR类型转换为string类型的示例代码:
```
#include <windows.h>
#include <string>
std::string LPWSTRToString(LPWSTR lpwstr)
{
int len = WideCharToMultiByte(CP_UTF8, 0, lpwstr, -1, NULL, 0, NULL, NULL);
std::string result(len, '\0');
WideCharToMultiByte(CP_UTF8, 0, lpwstr, -1, &result, len, NULL, NULL);
return result;
}
```
阅读全文