Ubuntu 24.04下安装Wine运行微信最新版本3.9.9完美版
liuian 2025-01-04 21:26 52 浏览
之前一直用在Ubuntu下用微信,基本上功能可用,但是存在几个问题:
- 切换到其他应用窗口后,微信窗口边框留有残影。
- 手残升级微信到3.9.9之后,经常出现崩溃退出微信。
- 有时候输入框光标消失,发送表情问题提示不能发送空信息。
- 小程序和链接打开后崩溃。
- 有时候缺少字体导致显示不正常。
刚好五一假期有点空闲就整治一下笔记本电脑,顺便把微信的这些小问题一并解决了。
以前解决这些问题都是各种网站上搜索,这次既然要整治就从根本上定位问题根源并给出完美解决方案。所谓从根本上定位就是要找到代码级问题且逻辑自洽。首先第一步就是要能够从源码编译,方便后期修改代码后查看效果。
Wine的文档质量还是非常不错的,非常详细和准确。按照文档说明一步一步操作就能够编译成功。关键点是参考:
- 编译说明文档:Building Wine - WineHQ Wiki
- 我个人是把64位和32位都做了编译,也就是WoW64模式。
- 特别注意看编译文档中的依赖满足部分,仔细点添加开发依赖就行。
考虑到经常要编译,为了偷懒不用每次都安装包就打包成为一个docker并且把依赖环境这些都准备好放在github(大家觉得有空也欢迎大家加星):
具体编译脚本build.sh没有放到docker里面,该脚本主要就是编译64位wine,安装/替换32位开发环境(由于部分环境跟64位开发环境冲突),编译32位环境三部分。大家根据自己需要操作。
接下来就是每个问题予以解决:
- 转移窗口焦点后有边框残影。
这个问题早有其他人给出了解决方案,具体参考patch文件:
repo/archlinuxcn/wine-for-wechat/wine-wechat.patch at master · archlinuxcn/repo · GitHub
由于版本不同,这个patch的位置可能会有不对。自行参考后正确修改dlls/user32/win.c文件。9.7版本的是在470行左右CreateWindowExW函数体内添加。
- 新版本微信崩溃问题
这个问题我在升级到新版本3.9.9后发现,之前的版本应该是比较老了(3.8?不确定),由于一直好用也没有怎么动。结果手残升级后发现运行一段时间就崩溃,每次也不确定运行多久就崩溃。
那没有办法,逢山开路遇水搭桥。最直接方式就是抓backtrace。
这里必须赞一下wine的文档,非常详细都不用花费脑细胞到处查找,winedbg的例子就是如何在crash时候断点。具体参考:Winedbg - WineHQ Wiki
然后放着等断点触发后查看,主要是微信3.9.9版本后调用FindFirstFileNameW函数,但是这个函数在wine里面暂时没有实现。
问题找到了就好办,没有实现咱们就给他“实现”呗,反正wine就是一个模拟器,微信我也是主要用基本功能。
下面就是具体的修改方法:
- 主要涉及两个dll:kernel32.dll和kernalbase.dll。
- 首先要打开接口,核心实现是在kernalbase,但是在kernal32里面也需要有这个接口定义。原因是kernel32主要负责面向应用层接口。具体我就不详细写了,大家对照着截图中的文件行数自己根据实际情况修改。
- 至此修改完成,重新编译后安装就可以正常运行了。
此外,还遇到微信小程序和链接无法正常打开。最后参考网上答案予以解决:
步骤一、在微信主界面搜索框内输入:
:showcmdwnd后回车,会弹出一个命令行窗口,然后在窗口中输入以下命令强制更新插件:
/plugin set_grayvalue=203&set_config_url=https://dldir1.qq.com/weixin/Windows/XPlugin/updateConfigWin.xml&check_update_force具体应该使用哪一个grayvalue请大家查找具体文档。
其他的问题都比较常见了,大家自行网上寻找答案就是。
等后面有空再把这些patch文件整合到脚本中。希望这篇文章能够帮到大家在Linux下面顺畅运行微信。
相关推荐
- itunes备份c盘满了怎么办(itunes备份c盘满了怎么删除还没备份完)
-
转移itunes资料库先在D盘或者E盘建一个新文件夹,例如:itunes备份打开itunes,在左上角有个设置菜单按钮,点击,下拉菜单里选择“偏好设置”在偏好设置---高级---把“保持iTunes...
- 电脑硬盘长什么样子(电脑硬盘是什么形状)
-
硬盘是一种重要的数据存储设备,有机械硬盘、固态硬盘、服务器硬盘、外置硬盘等多种类型。根据用户需求和应用场景,可以选择不同类型的硬盘,以满足各种需求。同时,用户还应考虑硬盘的容量、性能、价格等因素,以便...
- win7激活后蓝屏进不了系统(win7用了激活工具重启蓝屏)
-
win7开机蓝屏是由于系统的主引导记录出错导致的,可以通过重建计算机主引导记录的方式解决:1、将pe启动盘插在电脑上,然后开机进入pe系统,选择第一项回车进入:2、进入到pe桌面之后,双击桌面上的分区...
-
- win10系统的控制面板在哪里打开
-
开始菜单:在任务栏的左下角,点击Windows徽标(或按键盘上的Windows键),然后在弹出的开始菜单中,找到“控制面板”并点击。搜索功能:在任务栏最右侧的搜索框中,输入“控制面板”或“ControlPanel”,然后在出现的搜索结果...
-
2026-01-06 07:55 liuian
- c盘清理软件专注优化大师(c盘清理大师是啥)
-
班级优化大师在清除记录方面非常简单。只需要在主界面底部找到“清除记录”按钮,点击即可清除所有的记录。同时,也可以在设置界面中选择“清除所有记录”选项,来清除所有的数据。此外,班级优化大师还支持定期自动...
- 台式电脑怎样安装摄像头(台式电脑怎么安装摄像头视频教程)
-
购买一个USB接口的摄像头,先把驱动光盘放入光驱,运行安装程序,安装好后,插入USB摄像头,电脑会自动识别并安装驱动,等一会儿就安装好了。打开摄像头程序看看是否有影像,也可以打开QQ对摄像头进行配置。...
- 下载最新版本app(fission下载最新版本)
-
1.请检查iPhone有足够的储存空间; 2.重启iPhone后再次尝试下载; 3.检测当前网络状态是否正常,或尝试连接其它Wi-Fi网络。如长时间仍然无法正常下载,可尝试还原iP...
- xp电脑模拟器(windows xp,模拟器)
-
XP电脑可以玩GBA模拟器。在XP电脑上,可以使用VisualBoyAdvance这款GBA模拟器。根据公开资料,VisualBoyAdvance可以在Windows、MacOS等操作系统上运行,并支...
- u盘怎么装系统xp(u盘怎么装xp系统步骤)
-
1、制作U盘启动盘,装系统前需要将U盘制作成启动盘,这个比较简单,网上有U盘启动盘制作工具。2、下载XP系统到U盘,需要将XP系统下载到自己的U盘,方便安装。3、首先将U盘插入电脑,然后再开机。4、开...
- dos游戏(dos游戏小鸟跳格子)
-
DOS游戏是用DOS下的开发工具开发的,例如TurboC等等,执行文件是Exe格式,另外还有许多数据文件,例如图像和声音等,有的是通用格式,有的是自定义格式。因为多数的DOS游戏是无法在XP系统下运...
- 安卓手机杀毒软件哪个好(安卓手机 杀毒软件)
-
安卓手机可以杀毒。大多数安卓手机都自带杀毒软件或者安全中心,可以检测和清除病毒。另外,也可以下载第三方杀毒软件,如腾讯手机管家、360安全卫士等,这些软件都具有强大的病毒查杀功能,可以深度清理手机中的...
- windows7怎么截图快捷键(windows7截图快捷键修改)
-
1、使用“PrintScreen”快捷键:按“Alt+PrintScreen”可以将光标所在窗口的截图复制到剪贴板上;2、使用“SnippingTool”:Windows7提供了一款名为“S...
- 联想售后支持(联想售后支持加装内存条吗)
-
保修期状态:保内维修:保修期内(中国大陆正规渠道购买的产品在保修期内因为产品质量问题导致的故障,且无人为损坏)。保外维修:保修期外(产品已过保修期)。非损维修:人为损坏(人为不当使用或未按说明书要求使...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
