char* to WCHAR*

I'm attempting to use the MS speech SDK and in order to make this functional, I need to convert a null terminated char* (containing the text to say) to WCHAR* so that it may be plugged into Voice->Speak. I tried MultiByteToWideChar to no avail, perhaps due to a simple mistake on my part. Whatever the case may be, nothing other than the first four characters are ever spoken by the program. Is there a simpler method to accomplish this in non-MFC C++ or C, or should I continue to use MultiByteToWideChar? And if this is the case, how would one go about -properly- plugging the null terminated char* in?
Who is Participating?
jkrConnect With a Mentor Commented:
You could use

char* psz = "some text";
WCHAR* pwsz = new wchar_t [strlen(psz) + 1];

wsprintfW ( pwsz, L"%S", psz);
BTW, there's also 'mbstowcs()', which would work like

char* psz = "some text";
size_t sz = strlen(psz);
WCHAR* pwsz = new wchar_t [sz + 1];

mbstowcs( pwsz,  psz, sz + 1);

StateAuthor Commented:
You're a lifesaver. Thanks muchly!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.