从char*转换为wchar_t

Asg*_*har 1 c++ winapi

我需要从char*转换为wchar.这就是我的表现.

char * retrunValue= getData();
size_t origsize = strlen(returnValue) + 1;
const size_t newsize = 200;
size_t convertedChars = 0;
wchar_t wcstring[newsize];
mbstowcs_s(&convertedChars, wcstring, origsize, returnValue, _TRUNCATE);
wcscat_s(wcstring, L" (wchar_t *)");
Run Code Online (Sandbox Code Playgroud)

当我试图打印转换后的值"wcstring"时,getData()函数返回一个char*值,例如"C:/ Documents and Settings":值不正确:它是这样的"C:/ Documen9"之类的东西垃圾.1-请告诉我以这种方式从char*转换为wchar是安全的,正如我正在做的那样2-如何获取getData()函数返回的原始值

感谢和问候

更新:

size_t origsize = strlen(returnValue) + 1;
const size_t newsize = 200;
size_t convertedChars = 0;
wchar_t wcstring[newsize];
wsprintf(wcstring, newsize, L"%S (wchar_t *)", returnValue);
Run Code Online (Sandbox Code Playgroud)

添加了这个,但它说."size_t类型的参数与"LPCWSTR"类型的参数不兼容"

Eri*_*rik 5

mbstowcs_s(&convertedChars, wcstring, newsize, returnValue, _TRUNCATE);
                                      ^^^
Run Code Online (Sandbox Code Playgroud)

你通过了错误的大小.