multibytetowidechar 在不是中文的操作系统中有乱码

beyond8820 2010-07-08 11:41:57
在中文操作系统中将string转换为宽字符
multibytetowidechar(CP_ACP, 0, str.c_str(), strlen(str.c_str()), (WCHAR*)value, strlen(str.c_str()) *2)

value是我自己定义的unsigned short数组,转换后可以正确显示

将软件装到英文操作系统中,在转换后显示时,发现字符串后面总是带有乱码,

求助:怎么解决乱码的问题?

谢谢

...全文
264 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
安乐风流 2012-01-16
  • 打赏
  • 举报
回复
在系统中将语言区域设为"chinese"
Eleven 2010-07-08
  • 打赏
  • 举报
回复
英文系统没有装中文库也是白搭。。。
fangchao918628 2010-07-08
  • 打赏
  • 举报
回复
DWORD dwNumw = MultiByteToWideChar(CP_OEMCP,NULL,str.c_str(),-1,NULL,0);

用这个计算长度试下
beyond8820 2010-07-08
  • 打赏
  • 举报
回复
变量都初始化了
fangchao918628 2010-07-08
  • 打赏
  • 举报
回复
看下变量初始化没有.....
beyond8820 2010-07-08
  • 打赏
  • 举报
回复
试试先 一会回来报告结果
stonewater 2010-07-08
  • 打赏
  • 举报
回复
multibytetowidechar(CP_ACP, 0, str.c_str(), strlen(str.c_str()), (WCHAR*)value, strlen(str.c_str()) *2)
=============>>>>
multibytetowidechar(936, 0, str.c_str(), strlen(str.c_str()), (WCHAR*)value, strlen(str.c_str()) *2)
wltg2001 2010-07-08
  • 打赏
  • 举报
回复
应该是英文操作系统下没有中文字库的原因吧
beyond8820 2010-07-08
  • 打赏
  • 举报
回复
现在已经这样了 有什么办法吗
VsirSoft 2010-07-08
  • 打赏
  • 举报
回复
你应该创建工程的时候就选择Unicode编码~ 这样就不会有问题了
beyond8820 2010-07-08
  • 打赏
  • 举报
回复
貌似已经装了的。。。。。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧