Конвертация типа std::string в wchar_t*.
wchar_t* StrToWstr(const std::string &aString)
{
// чтобы не делать каждый раз new создадим некоторый буфер заранее
const int maxSize = 1024 * 1024; // 1Мб символов
static wchar_t buff[maxSize];
int nSize = ::MultiByteToWideChar(CP_UTF8, 0, aString.c_str(), static_cast<int>(aString.length() + 1), NULL, NULL);
wchar_t *tBuff = buff;
if (nSize > maxSize)
{
// пытаемся выделить память только если не хватило
tBuff = new wchar_t[nSize];
}
if (nSize <= 0 && tBuff == NULL)
return L"";
::MultiByteToWideChar(CP_UTF8, 0, aString.c_str(), static_cast<int>(aString.length() + 1), buff, nSize);
wchar_t* result(tBuff);
if (tBuff != buff)
delete[] tBuff;
return result;
}