To convert a char * to a wchar_t* you can use teh MultiByteToWideChar function.
I’have to say that I lost some hours to work with this function.
The first step is to retrieve the size of the buffer needed for the wide string:
char *myString = "ciao";
int wchars_num = MultiByteToWideChar( CP_UTF8 , 0 , myString , -1, NULL , 0 );
then a new wide string must be allocated:
wchar_t* wstr = new wchar_t[wchars_num];
And, finally, the conversion
MultiByteToWideChar(CP_UTF8, 0, myString , -1, wstr, wchars_num);