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);