Просто используйте это:
static wchar_t* charToWChar(const char* text)
{
const size_t size = strlen(text) + 1;
wchar_t* wText = new wchar_t[size];
mbstowcs(wText, text, size);
return wText;
}
Не забудьте вызвать delete [] wCharPtr
для результата возврата, когда закончите, иначе это утечка памяти, ожидающая, если вы продолжите вызывать это без очистки. Или используйте умный указатель, как показано ниже.
Или используйте стандартные строки, например:
#include <cstdlib>
#include <cstring>
#include <string>
static std::wstring charToWString(const char* text)
{
const size_t size = std::strlen(text);
std::wstring wstr;
if (size > 0) {
wstr.resize(size);
std::mbstowcs(&wstr[0], text, size);
}
return wstr;
}