Duilib的richedit控件在win10输入中文时出现乱码

来源:赵克立博客 分类: DuiLib 标签:duilib发布时间:2018-07-18 10:04:26最后更新:2018-07-18 10:10:31浏览:2579
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-07-18 10:10:31
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

最近升级啦win10系统使用中没啥问题慢慢的也就习惯啦,但是发现一个问题,我以前在win7下使用duilib开发的一个小程序在win10中使用时不正常,如下


image.png

输入中文的时候出现啦类似韩文的乱码,原来在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 文件到你程序的安装目录再运行程序也可以解决这个问题


微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python