masmplus不支持WideCharToMultiByte函数转换成utf8编码,求解

ibmt500 2010-04-08 07:22:13
invoke WideCharToMultiByte,CP_UTF8, 0,addr @szBuffer,-1,addr @szBuffer,addr @szBuffer, NULL, NULL

我准备用这个函数转换字串为utf8编码,显示错误:error A2006: undefined symbol : CP_UTF8
不支持CP_UTF8,msdn上写着支持的啊,我晕啊,可怎么办啊,各位大侠救救我。
...全文
104 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ibmt500 2010-04-11
  • 打赏
  • 举报
回复
我会了,下载masm10覆盖到masmplus目录,就支持utf8了

asc to utf8,中间用Unicode交换:
invoke MultiByteToWideChar,CP_UTF8,0,addr @szBuffer,-1,addr @szUTF,sizeof @szUTF
invoke WideCharToMultiByte,CP_ACP,0,addr @szUTF,-1,addr @szBuffer,sizeof @szBuffer,NULL, NULL

utf8 to asc:
invoke WritePrivateProfileString,offset szIniSection,offset szIniKeyName,addr @szUTF,offset szIniFileName
大熊猫侯佩 2010-04-09
  • 打赏
  • 举报
回复
如果用的是masm系列的宏汇编器可以有几种办法:

1 自带转unicode字符串的宏,可以使用

2 如果找不到,可以自己编写a2u的宏转换

3 调用c库中的unicode转换函数

4 调用Win32API中的转换函数

5 调用NTDLL中的RTLxxx转换unicode函数
ibmt500 2010-04-08
  • 打赏
  • 举报
回复
invoke GetPrivateProfileString,offset szIniSection,offset szIniKeyName,offset szIniDefault,addr @szBuffer,sizeof @szBuffer,offset szIniFileName
当我读取utf8格式的ini时候,中文能正确显示,郁闷帮帮我
ibmt500 2010-04-08
  • 打赏
  • 举报
回复
invoke GetDlgItemText,hWnd,IDC_CUSTOMTEXT,addr @szBuffer,sizeof @szBuffer
mov eax,sizeof @szBuffer
inc eax
mov @szSize,eax
invoke WideCharToMultiByte,65001,0,addr @szBuffer,-1, @szUTF,@szSize, NULL, NULL
invoke WritePrivateProfileString,offset szIniSection,offset szIniKeyName,@szUTF,offset szIniFileName
我这有写的,把文本框的文字转换utf8,再写ini的键值,结果不正确,现在连英文都显示不正确了,ls大侠帮帮我,谢谢
lbh2001 2010-04-08
  • 打赏
  • 举报
回复
直接用数字就是
CP_UTF8等于65001或0xFDE9

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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