3195|0

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

码制转换的问题(Unicode到Ascii) [复制链接]

if(strcmp((buffer = MySock->RecvMsg()),"") != 0)
                {
                                                len=MultiByteToWideChar( //计算从Ansi转换到Unicode后需要的字节数
                                CP_ACP,
                                MB_COMPOSITE,
                                buffer, //要转换的Ansi字符串
                                -1, //自动计算长度
                                0,
                                0
                                );
                       
                        temp = NULL;
                        temp = (TCHAR*)malloc(len*sizeof(TCHAR));
                                                MultiByteToWideChar( //从Ansi转换到Unicode字符
                                CP_ACP,
                                MB_COMPOSITE,
                                buffer,
                                -1,
                                temp, //转换到temp       
                                len//最多转换len个Unicode字符
                                );
                                                SendMessage(hwnd, WM_GETMESSAGE, (WPARAM)0, (LPARAM)temp);//给窗口发送消息
                }

SendMessage(GetDlgItem(hWnd,IDC_EDIT1), WM_SETTEXT, NULL, lParam);//这里先在一个EditBox里显示传过来的字符串。显示成功“1&2&3$on”
                        buf = NULL;
                        buf = (char*)malloc(256*sizeof(char));
                        len=WideCharToMultiByte( //计算从Unicode转换到Ansi后需要的字节数
                                CP_ACP, //根据ANSI code page转换
                                WC_COMPOSITECHECK | WC_DEFAULTCHAR, //转换出错用缺省字符代替
                                (LPTSTR)lParam, //要转换的字符串地址
                                sizeof((LPTSTR)lParam), //要转换的个数
                                0, //转换后字符串放置的地址
                                0, //最多转换字符的个数,为0表示返回转换Unicode后需要多少个字节
                                0, //缺省的字符:"\0"
                                0 //缺省的设置
                                );
                       
                        WideCharToMultiByte( //转换Unicode到Ansi
                                CP_ACP,
                                WC_COMPOSITECHECK | WC_DEFAULTCHAR,
                                (LPTSTR)lParamg,
                                sizeof((LPTSTR)lParam),
                                buf, //转换到缓冲区中
                                len, //最多128个字节
                                0,
                                0
                                );
                        if(strcmp(buf,"1&2&3$on")==0)
MessageBox(NULL,_T("equil"),NULL,NULL);//这里总是不弹出
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表