众所周知,易自带的普通窗口、编辑框等等在中文系统上都是 CP_GB2312 的代码页,所以像一些其它国家的文字就无法显示, 更不用提 emoji 表情之类的了。

其实,在这之前我做了一些小小的处理(啊???)

思路不是很难

如果不介意的话,阅读代码时,可以配合这下面我的思路看看:

1、首先,程序肯定不是直接通过启动窗口启动的,而是绕了个弯子:

先执行了“InlineHook_”的命令,钩掉了“DrawTextA”,“CreateWindowExA”,“SetWindowLongA”3个函数
2、处理,处理“CreateWindowExA”,“SetWindowLongA”并不是很困难,用他们对应的Unicode版的命令替换掉就OK

3、处理DrawTextA,标签是通过这个函数来把字符绘制上去的,所以要处理掉这个函数:

其实就是判断一下是否是要绘制标签,然后用“DrawTextW”替换“DrawTextA”,否则执行“DrawTextA”
4、设置标题,其实就是用“SetWindowTextW”这个函数

注意“#测试Unicode”中的Unicode不是标准的Unicode,需要加上{0,0}
5、使用,你就会惊奇地发现……

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系贝贝进行处理。
本站默认解压密码:www.hibbba.com