[Exchange Ideas] “Windows应用兼容引擎”使用手册的第二篇 · 高级调试篇 | 进阶必看
Tofloor
poster avatar
vIann
deepin
19 hours ago
Author

本文是兼容引擎使用手册的第二篇·高级调试篇,我们将为你讲解统信Windows应用兼容引擎的“高级调试”功能,无论你是遇到安装失败、运行黑屏,还是字体乱码、DLL缺失,这篇文章都能帮你找到解决方法,助你运行更多 Windows 应用。

📌 如果你还没看过基础篇,建议先阅读《新手必看超详细教程!如何在 deepin 上运行 Windows 应用》,熟悉安装和基本操作。

一、基础概况

Windows应用在Linux环境下运行,难免会遇到各种兼容性问题。统信Windows应用兼容引擎内置了高级调试功能,帮你解决这些问题。

如何进入高级调试?

  • 场景1:应用安装失败

如果应用安装失败,直接点击窗口上的"我要调试"按钮,点击即可进入调试界面。

  • 场景2:应用运行异常

如果应用运行后出现问题(如黑屏、字体异常),在"我的应用"中找到该应用,点击菜单选择"高级调试"。

进入调试界面后,你可以对当前应用的容器环境进行多种自定义配置。每次调整后都可以点击 “调试运行” 测试效果,不满意就继续调整,直到应用正常运行。

二、功能详解

进入高级调试之后,我们可以在此处对多种配置进行自定义修改,高级调试界面主要包含以下六大配置模块,包括:基础配置、Wine 参数、DLL 覆盖、字体替换、组件安装、调试工具。接下来我们将为大家详细讲解各配置的具体功能及使用建议。

2.1 基础配置(最常用)

主要包括Windows版本、Wine 版本、内存优化、WineD3D渲染方式、CPU渲染、显示DPI、dxvk、vkd3d等核心设置。

配置项 功能说明 使用建议
Windows版本 模拟不同的 Windows 版本(如 Win7、Win10、Win11) 默认使用Windows10,但可能存在某些老软件只认 WinXP/Win7,某些新游戏要求 Win10、Win11的情况,此时可以尝试切换版本。
Wine版本 Wine 是兼容层的核心引擎,不同版本对应用的支持度不同 默认使用deepin-wine10-stable,如果应用运行异常,可以逐个尝试其他版本如 ge-proton9 对游戏优化较好)。
安装Proton Proton 是 Valve 开发的 Wine 分支,对 Steam 游戏支持更好 如果你运行的是 Steam 游戏或某些大型 3D 游戏,可以尝试安装 Proton 并选用相关 Wine 版本。普通办公软件不需要。
内存优化 优化 Wine 环境的内存管理方式,减少内存占用或提高稳定性。 默认开启, 开启之后可以大幅减少多进程应用的内存占用
WineD3D渲染方式 决定 3D 图形通过哪种方式渲染 运行游戏或图形软件时,如果画面卡顿、花屏或黑屏,尝试切换。gdi在opengl和vulkan都尝试失败的情况作为备选,特别是ARM架构下支持不完善的环境,可能需要设置gdi方式才能正常显示。
CPU渲染 使用 CPU 代替 GPU 进行渲染 在国产集显环境可能因为显卡驱动兼容性问题导致运行异常,此时可以改用CPU渲染,牺牲性能提高兼容性。
显示DPI 调整应用界面的缩放比例,单位是 DPI(每英寸点数) deepin-wine默认支持自适应高分屏系统缩放,但是部分应用对自适应高分屏支持不好,可能出现显示不全的问题,可以尝试修改到96。或者是需要调整界面缩放大小可以自行调整DPI值。
dxvk DirectX 到 Vulkan 的转换层 运行 DirectX 9/10/11 游戏时建议开启,能有效提高流畅度。
vkd3d DirectX 12 到 Vulkan 的转换层 运行 DirectX 12 游戏时建议开启。

💡调试小技巧
(1)版本不兼容提示:调整 Windows版本 或尝试不同的 Wine版本。
(2)界面大小问题:调整 显示DPI。
(3)游戏问题:优先调整 dxvk/vkd3d 和 WineD3D渲染方式。

2.2 Wine 参数

Wine 参数模块主要面向有一定经验的用户,通过配置启动参数、日志通道、环境变量等,可以更精细地控制应用的运行行为和问题定位。

配置项 功能说明 使用建议
启动参数 在启动 Windows 应用时附加的命令行参数。 极少数软件需要特定参数才能正常运行(例如 -opengl-safe),chromium系列应用可能需要添加--no-sandbox 和 --disable-gpu才能正常运行。除非软件官方文档明确要求,一般情况下建议保持空白。
Wine日志通道 选择记录哪些类型的 Wine 内部调试信息。不同的通道对应不同的子系统。 默认不需要选择。当应用崩溃或无法启动时,为了更详细的定位问题,可以针对性的选择日志类型,然后运行应用,日志将在右下方的“调试日志”区域内输出。
环境变量 设置 Wine 运行时的环境变量,格式如 LANG=zh_CN.UTF-8 主要用于解决中文乱码或区域语言问题。例如遇到界面文字显示方框,可输入 LANG=zh_CN.UTF-8。多个变量用空格隔开。
日志文件 指定日志输出的保存路径和文件名。 保持默认即可。如果你需要把日志发给开发者,可以在这里设置一个方便找到的路径,比如 /home/用户名/Desktop/wine.log

💡实用技巧
(1)一般用户:这四项通常不需要修改,保持空白或默认即可。
(2)遇到乱码:在“环境变量”中添加 LANG=zh_CN.UTF-8,同时配合“字体替换”模块解决。
(3)遇到闪退/崩溃:在“Wine 日志通道”中选择 “基础日志”,运行应用后点击下方的“调试日志”查看红色错误信息,截图去 deepin 社区求助。

2.3 DLL 覆盖

很多 Windows 程序运行时需要特定的动态链接库(.dll 文件)。DLL 覆盖允许你手动控制 Wine 使用哪个版本的 dll——是使用 Windows 原生的 dll,还是 Wine 自带的“内建”实现。

  • dll 名:需要覆盖的 dll 文件名称(例如 winemenubuilder.exed3dx9_43.dllmsvcp140.dll
  • 加载方式:双击某个条目即可切换该 dll 的加载策略。共有五种可选方式:
加载方式 含义说明 使用建议
原生(Windows) 指定用Windows原生的DLL文件,如果没有Windows版本加载失败 应用需要指定版本DLL才能工作的情况使用
内建(Wine) 使用wine编译的DLL文件 修改原生反而出问题,可以修改回来
原生优于内建 优先使用Windows原生DLL文件,没有也会加载wine编译的版本 兼容性更好的设置
内建优于原生 优先使用wine编译的版本,如果没有尝试加载Windows原生版本 wine默认行为,一般不需要设置
禁用 禁止加载指定DLL或者exe 禁用不需要运行的程序,比如更新程序

2.4 字体替换

Windows 应用在 Linux 下运行时,可能会出现界面文字显示为方框、乱码或完全空白,这通常是因为应用请求的 Windows 字体在 Linux 系统中不存在。字体替换功能允许你将缺失的 Windows 字体映射到 Linux 系统已安装的字体上,从而恢复正常显示。

兼容引擎已经内置了常用 Windows 字体到 Linux 字体的默认映射。如果你发现某个应用依然乱码,可以检查左侧列表中是否缺少该字体名称,若缺少,可尝试手动添加一行。

如何手动添加字体替换?

  • 点击界面上的 “添加” 按钮(+ 号);
  • 在“将Windows字体”中输入应用请求的字体名称;
  • 在“替换为”中选择或输入 Linux 系统已有的字体名称(推荐 WenQuanYi Micro Hei)。

2.5 组件安装

很多 Windows 软件需要依赖特定的运行库或组件才能正常工作,组件安装模块为你提供了常用组件的快速安装入口,并支持导出/导入功能,方便离线环境或重装系统后快速恢复。

如何安装组件?

1、在线安装(默认方式)

确保电脑已连接网络,在组件列表中找到需要的组件,点击其右侧的安装按钮。引擎会自动下载并安装该组件,安装完成后会有提示。

2、离线安装(导入组件)

如果你处于无网络环境,或者已经通过其他方式获得了组件备份,可以点击界面上的 “导入组件” 按钮。

  • 在弹出的对话框中,点击“手动选择”,选择你之前导出的组件备份文件;
  • 点击 “导入”,兼容引擎会将组件安装到当前容器中。

3、导出组件(备份与分享)

如果你已经成功安装了一些组件,并且希望备份它们以便重装系统后使用,或者分享给其他用户,可以点击 “导出组件” 按钮。

  • 在弹出的对话框中,会列出已安装的离线组件,选择需要导出的组件,点击 “导出”,即可将组件打包保存到本地;
  • 之后可以在任何需要的时候通过“导入组件”快速恢复。

2.6 调试工具

调试工具模块提供了底层命令行和图形化配置入口,适合有一定经验的用户进行深度定制、问题定位和容器管理。你可以在这里打开 winecfg、regedit、任务管理器 等经典工具,也可以直接进入终端 执行 wine 命令。

工具名称 功能说明
wine配置 打开 Wine 的图形化配置面板(winecfg),可调整应用设置、函数库、驱动器、音频等
注册表编辑器 打开 Windows 风格的注册表编辑器(regedit),可修改注册表键值
添加/删除程序 打开 Wine 自带的程序卸载管理器,可安装新应用、查看已安装应用并卸载
Internet设置 打开 Internet 属性面板(类似 Windows 的 Internet 选项),可设置主页、清除缓存、导入浏览器证书等
在终端打开 打开一个终端窗口,并自动进入当前应用容器的环境,可手动执行 wine 命令
任务管理器 打开 Wine 任务管理器,查看容器内运行的程序、CPU/内存占用,可强制结束选中的程序
打开C盘 在文件管理器中打开当前容器的 C 盘根目录
退出所有应用 强制退出当前容器中运行的所有 Windows 程序。应用出现卡死,或者之前能启动,第二次不能启动的情况可以尝试退出所有应用之后重试。

💡温馨提示:对于绝大多数日常使用,你不需要用到这些底层工具。当基础配置、组件安装等无法解决问题时,再尝试进入调试工具。如果不确定某个操作的影响,建议先在社区论坛搜索或提问,避免误操作导致容器损坏。

三、流程总结

为了帮助你更高效地使用高级调试,这里给出一个通用的“调试三步走”流程:

Step1:先基础,后组件

遇到问题 → 先调整“基础配置”(Windows 版本、渲染方式等)→ 尝试运行 → 如果提示缺库,去“组件安装”安装对应运行库。

Step2:再 DLL 覆盖,再字体

如果仍然提示缺少某个特定的 DLL 文件(非运行库),尝试“DLL 覆盖”添加原生 DLL。

如果界面文字乱码或变方框,去“字体替换”映射中文字体。

Step3:最后看日志,求助社区

如果以上都不行,可以开启 Wine 日志通道,运行应用后查看日志文件,将日志截图或文本发到 deepin 社区论坛,官方人员和热心用户会帮你分析。越详细的日志,越能帮助我们快速定位问题。

PS:如果你成功调试了某个应用,记得在“我的应用”中点击 “投递应用”,将配置分享给更多人;如果你有想用的应用但找不到,去 “心愿墙” 提交需求。生态的繁荣,需要每个人的参与~

下期预告:本期我们详细拆解了高级调试的六大功能模块,从基础配置到调试工具,相信你已经能够独立解决大部分兼容性问题。下一期我们将为你带来 《兼容引擎使用手册 - 常见问题及解决方案》,汇总用户遇到的高频问题及修复技巧,敬请期待!

**现在,打开你的应用商店搜索“统信 Windows 应用兼容引擎”,如果遇到疑难杂症,不妨打开高级调试,一步步排查。欢迎在评论区留言你的调试经历或疑问,也别忘了将文章分享给同样需要的小伙伴哦!**若您在使用过程中遇到任何问题,可通过统信 Windows 应用兼容引擎内置的反馈渠道直接提交,也可在deepin 社区论坛或项目群聊中与我们交流,您的建议是帮助我们不断前进的动力!

加入“deepin 生态共建小组(wine)”

Reply Favorite View the author
All Replies

No replies yet