我需要从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"类型的参数不兼容"
mbstowcs_s(&convertedChars, wcstring, newsize, returnValue, _TRUNCATE);
^^^
Run Code Online (Sandbox Code Playgroud)
你通过了错误的大小.