char*到const wchar_t*转换

use*_*248 5 c++ pointers char wchar

我需要将字符指针转换为w_char*才能使用ParseNetworkString().我自己试过找到解决方案,虽然我找到了一个解决方案,但有一个问题阻止我使用它:

b1naryatr0phy在另一篇文章中说:

std::wstring name( L"Steve Nash" );
const wchar_t* szName = name.c_str();
Run Code Online (Sandbox Code Playgroud)

这几乎对我有用,除了我不能只传递字符串表达,因为它的值并不总是相同,这意味着我不能只把它放在引号中.如果我用函数调用替换参数,那么第一行给出了一个错误(例如:std :: wstring name(LgetIpAddress());我试过std :: wstring name(L""+ getIpAddress()+ "");;认为它只需要在L之后加一个引号,但这也不起作用......任何建议?

谢谢!:)

对任何能够回答这个问题的人都有额外的荣誉!

链接到其他帖子:我想将std :: string转换为const wchar_t*

PS对不起,只是为了澄清,getIpAddress返回一个字符指针

eq-*_*eq- 3

是什么类型的getIpAddress()

下面的代码片段展示了如何将 a 转换string为 a wstring(使用标准 C++11,无错误检查):

wstring to_wstring(string const& str)
{
  size_t len = mbstowcs(nullptr, &str[0], 0);
  if (len == -1) // invalid source str, throw
  wstring wstr(len, 0);
  mbstowcs(&wstr[0], &str[0], wstr.size());
  return wstr;
}
Run Code Online (Sandbox Code Playgroud)