const char*转换成wstring类型

转载自:https://blog.csdn.net/cqltbe131421/article/details/52597813

直接上代码:

 

std::wstring CATOW(const char* lpcszString)//返回值类型是wstring类型
{
 int unicodeLen = ::MultiByteToWideChar(CP_ACP, 0, lpcszString, -1, NULL, 0);//获取字符串长度


 wchar_t* pUnicode = new wchar_t[unicodeLen + 1];//开辟宽字节内存
 memset(pUnicode, 0, (unicodeLen + 1) * sizeof(wchar_t));//清空


 ::MultiByteToWideChar(CP_ACP, 0, lpcszString, -1, (LPWSTR)pUnicode, unicodeLen);//转换
 std::wstring wString = (wchar_t*)pUnicode;//强转后赋值给返回变量
 delete[] pUnicode;
 return wString;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C++中,将`const char*`类型的字符串换为`LPCWSTR`类型的宽字符字符串可以使用多种方法。下面是两种常见的换方式: 1. 使用`MultiByteToWideChar`函数:`MultiByteToWideChar`函数可以将窄字符编码换为宽字符编码。以下是一个示例代码: ```cpp const char* narrowStr = "Hello"; int wideStrSize = MultiByteToWideChar(CP_UTF8, 0, narrowStr, -1, NULL, 0); wchar_t* wideStr = new wchar_t[wideStrSize]; MultiByteToWideChar(CP_UTF8, 0, narrowStr, -1, wideStr, wideStrSize); LPCWSTR wideStrPtr = wideStr; // 使用wideStrPtr,即LPCWSTR类型的宽字符字符串 // ... delete[] wideStr; // 记得释放内存 ``` 2. 使用`std::wstring`类:`std::wstring`是C++标准库中的字符串类,用于存储宽字符字符串。可以使用`std::wstring_convert`类来实现字符串的换。以下是一个示例代码: ```cpp #include <iostream> #include <string> #include <locale> #include <codecvt> const char* narrowStr = "Hello"; std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; std::wstring wideStr = converter.from_bytes(narrowStr); LPCWSTR wideStrPtr = wideStr.c_str(); // 使用wideStrPtr,即LPCWSTR类型的宽字符字符串 // ... ``` 这两种方法都将`const char*`类型的字符串换为`LPCWSTR`类型的宽字符字符串,以便在Windows API中使用。据具体场景和需求,选择适合的方法进行换。同时,需要注意内存管理和字符编码的问题,确保换过程正确和安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值