宽字符转窄字符wcstombs_s

size_t   i;

Char AppDirectory[300];

Wchar GetAppDirectory;

errno_t einval= wcstombs_s(&i,  AppDirectory, 300, GetAppDirectory, wcslen(GetAppDirectory));

GetAppDirectory中有中文字符时,转换会出现问题,如“as\桌面\ass.log,使用上面函数转化后AppDirectory结果为“as\桌面\ass.l”。原因是wcslen(GetAppDirectory)的结果是13,而wcstombs_s中第5个参数是最大字节数。解决办法是使用默认值_TRUNCATE。即

errno_t einval= wcstombs_s(&i,  AppDirectory, 300, GetAppDirectory, _TRUNCATE);

posted on 2009-12-04 11:43  fairycao  阅读(9290)  评论(0编辑  收藏  举报