Duilib的richedit控件在win10输入中文时出现乱码
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-07-18 10:10:31
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
最近升级啦win10系统使用中没啥问题慢慢的也就习惯啦,但是发现一个问题,我以前在win7下使用duilib开发的一个小程序在win10中使用时不正常,如下
、
输入中文的时候出现啦类似韩文的乱码,原来在win7下可是正常的。于是上网找原因,
有人已经在win8下遇到啦同样的问题如下地址
https://www.cnblogs.com/sunsmile/archive/2013/02/20/ningmengxiu.html
问题原因在于这个控件是使用啦一个msftedit.dll这个库的,而这个库从win7到win8 win10应该是有改动导致的不兼容
PCreateTextServices TextServicesProc = NULL; HMODULE hmod = LoadLibrary(_T("msftedit.dll")); if (hmod) { TextServicesProc = (PCreateTextServices)GetProcAddress(hmod, "CreateTextServices"); } if (TextServicesProc) { HRESULT hr = TextServicesProc(NULL, this, &pUnk); } hr = pUnk->QueryInterface(IID_ITextServices, (void **)&pserv);
解决方法一
win8,win10下开发一般是建议使用unicode编码的,而我的项目使用是是多字节集编码,如果改动不大的话可以改编码就可以解决问题
解决方法二
找一个win7系统 复制C:\Windows\System32\msftedit.dll 文件到你程序的安装目录再运行程序也可以解决这个问题