mbstowcs()是MultiByteToWideChar()的简化版,除了参数少了,本来以为参数少了一些,并不会影响使用,今天却发现了它的一个小问题,在中文字符的转换上,前者似乎无法对中文字符进行处理,转换后显示成乱码,而后者则不会。看来以后还是不能太偷懒了。我开始一直嫌后者的参数太多,麻烦,不愿意用,甚至想用A2OLE()宏来处理,可惜这个好东东不能在普通win32程序中使用。呵呵。
代码:
WCHAR strPath[MAX_PATH];
CHAR buf[] = “i am 中国人”;
// 简化版对中文字符的转换不好
// mbstowcs( strPath, buf, MAX_PATH );
// 还是这个比较好
MultiByteToWideChar(CP_ACP, 0, buf, strlen(buf), strPath, MAX_PATH );
代码:
WCHAR strPath[MAX_PATH];
CHAR buf[] = “i am 中国人”;
// 简化版对中文字符的转换不好
// mbstowcs( strPath, buf, MAX_PATH );
// 还是这个比较好
MultiByteToWideChar(CP_ACP, 0, buf, strlen(buf), strPath, MAX_PATH );