保存时间:2026/4/3 19:24:54
sudo dpkg --add-architecture i386
# 下载密钥
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
# 添加 22.04 (jammy) 源
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
sudo apt update
sudo apt install --install-recommends winehq-stable
wine --version
# 应输出类似 wine-9.0 (stable)
winecfg
wine /path/to/your/game.exe
sudo apt install winetricks
winetricks
winehq-stablewinehq-develwinehq-stagingwinetricks 安装缺失的控件和运行库(这是解决这类问题最直接的方式):# 先确保 winetricks 已安装
sudo apt install -y winetricks
# 针对你的 wine32 环境,安装 Common Controls 和其他必备运行库
WINEPREFIX=~/.wine32 winetricks comctl32=6.0.2900.2180 vcrun2005 vcrun2008 vcrun2010 dotnet20sp2
WINEPREFIX=~/.wine32:指定你的 wine 环境路径(因为你用的是 .wine32 而非默认的 .wine)comctl32=6.0.2900.2180:安装缺失的 Windows 通用控件 6.0 版本vcrun2005/2008/2010:英雄无敌 3 HD 版需要的 VC++ 运行库dotnet20sp2:部分 HD 启动器依赖 .NET 2.0# 修复 wine32 环境的权限
sudo chown -R $USER:$USER ~/.wine32
# 重新初始化 winecfg(确保组件正确注册)
WINEPREFIX=~/.wine32 winecfg
winecfg 后,在弹出的窗口中确认 Windows 版本(建议选 Windows XP 或 Windows 7,英雄无敌 3 对这两个版本兼容性最好),然后点击确定。cd ~/.wine32/drive_c/GOG\ Games/HoMM\ 3\ Complete/
WINEPREFIX=~/.wine32 wine ./HD_Launcher.exe
# 进入 system32 目录(32位 wine 环境)
cd ~/.wine32/drive_c/windows/system32/
# 注册 comctl32.ocx
WINEPREFIX=~/.wine32 wine regsvr32 comctl32.ocx
# 注册 mscomctl.ocx(如果有)
WINEPREFIX=~/.wine32 wine regsvr32 mscomctl.ocx
winetricks 为指定的 .wine32 环境安装 comctl32 和相关 VC++ 运行库。WINEPREFIX=~/.wine32,否则会操作默认的 wine 环境,无效。comctl32=6.0.2900.2180 这个写法不对(winetricks 不支持指定具体版本号),二是你的 Wine 环境是 64 位的,而英雄无敌 3 这类老游戏更适合 32 位 Wine 环境。下面我给你修正后的完整步骤:# 针对你的 ~/.wine(64位)环境安装必备组件
WINEPREFIX=~/.wine winetricks comctl32 vcrun2005 vcrun2008 vcrun2010 dotnet20sp2
# 1. 创建纯 32 位 Wine 环境(命名为 homm3,方便区分)
WINEARCH=win32 WINEPREFIX=~/.wine-homm3 winecfg
# 2. 为这个 32 位环境安装必备运行库(解决控件缺失问题)
WINEPREFIX=~/.wine-homm3 winetricks comctl32 vcrun2005 vcrun2008 vcrun2010 dotnet20sp2 dx9
# 3. 运行英雄无敌3 HD 启动器(用新的 32 位环境)
cd ~/.wine/drive_c/GOG\ Games/HoMM\ 3\ Complete/
WINEPREFIX=~/.wine-homm3 wine ./HD_Launcher.exe
# 备份旧版本
sudo mv /usr/local/bin/winetricks /usr/local/bin/winetricks-old
# 下载最新版
sudo wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -O /usr/local/bin/winetricks
# 赋予执行权限
sudo chmod +x /usr/local/bin/winetricks
# 验证版本
winetricks --version
# 进入 32 位环境的 system32 目录
cd ~/.wine-homm3/drive_c/windows/system32/
# 注册 comctl32.ocx
WINEPREFIX=~/.wine-homm3 wine regsvr32 comctl32.ocx
# 注册 mscomctl.ocx(英雄无敌3常需要)
WINEPREFIX=~/.wine-homm3 wine regsvr32 mscomctl.ocx
comctl32=6.0.2900.2180 写法无效,winetricks 只需写 comctl32 即可自动安装适配版本。WINEARCH=win32 创建纯 32 位 Wine 环境,兼容性远好于 64 位环境。comctl32 等运行库,再用专属 32 位环境运行游戏启动器。https://download.microsoft.com/download/5/B/C/5BC5DBB3-652D-4DCE-B14A-475AB85EEF6E/vcredist_x86.exe
https://archive.org/download/vcredist_x86_2010/vcredist_x86.exe
~/Downloads/vcredist_x86.exe)。# 进入 winetricks 缓存目录
mkdir -p ~/.cache/winetricks/vcrun2010/
# 把下载好的文件复制到缓存目录(替换成你实际的下载路径)
cp ~/Downloads/vcredist_x86.exe ~/.cache/winetricks/vcrun2010/
# 重新运行安装命令(此时会用本地文件,不下载)
WINEPREFIX=~/.wine winetricks vcrun2010
# 检查已安装的组件
WINEPREFIX=~/.wine winetricks list-installed
comctl32、vcrun2005、vcrun2008、vcrun2010、dotnet20sp2 就说明安装成功。# 进入游戏目录
cd ~/.wine/drive_c/GOG\ Games/HoMM\ 3\ Complete/
# 用 64 位环境运行 HD 启动器
WINEPREFIX=~/.wine wine ./HD_Launcher.exe
# 如果 HD 启动器仍不行,试试直接运行游戏主程序(跳过 HD 补丁)
WINEPREFIX=~/.wine wine ./heroes3.exe
# 更新系统证书
sudo apt update && sudo apt install -y ca-certificates
sudo update-ca-certificates
# 安装 aria2 替代默认下载工具(可选)
sudo apt install -y aria2
# 1. 创建32位环境
WINEARCH=win32 WINEPREFIX=~/.wine-homm3 winecfg
# 2. 复制手动下载的 vcredist_x86.exe 到32位缓存目录
mkdir -p ~/.cache/winetricks/vcrun2010/
cp ~/Downloads/vcredist_x86.exe ~/.cache/winetricks/vcrun2010/
# 3. 安装组件
WINEPREFIX=~/.wine-homm3 winetricks comctl32 vcrun2005 vcrun2008 vcrun2010 dotnet20sp2
# 4. 运行游戏
cd ~/.wine/drive_c/GOG\ Games/HoMM\ 3\ Complete/
WINEPREFIX=~/.wine-homm3 wine ./HD_Launcher.exe
wine vcredist_x86.exe 执行的过程),现在报错的是 64 位的 vcredist_x64.exe 下载失败 —— 但这对英雄无敌 3(32 位游戏)来说完全不重要,我们可以直接忽略这个 64 位组件的下载失败,直接去运行游戏就行。# 进入游戏目录
cd ~/.wine/drive_c/GOG\ Games/HoMM\ 3\ Complete/
# 用你的 ~/.wine 环境运行 HD 启动器
WINEPREFIX=~/.wine wine ./HD_Launcher.exe
# 如果 HD 启动器还是打不开,直接运行游戏主程序(绕过 HD 补丁)
# WINEPREFIX=~/.wine wine ./heroes3.exe
wine vcredist_x86.exe 已经执行完成(虽然有一些 Wine 无关的 fixme 警告),32 位运行库已经装好了。# 打开 Wine 配置窗口
WINEPREFIX=~/.wine winecfg
# 1. 创建纯32位 Wine 环境(命名为 homm3)
WINEARCH=win32 WINEPREFIX=~/.wine-homm3 winecfg
# 2. 安装32位必备组件(只装32位,不会触发64位下载)
WINEPREFIX=~/.wine-homm3 winetricks comctl32 vcrun2005 vcrun2008 dotnet20sp2
# 3. 复制手动下载的 vcredist_x86.exe 到32位环境的缓存目录
mkdir -p ~/.cache/winetricks/vcrun2010/
cp ~/Downloads/vcredist_x86.exe ~/.cache/winetricks/vcrun2010/
# 4. 安装32位 vcrun2010(纯32位环境不会下载64位版本)
WINEPREFIX=~/.wine-homm3 winetricks vcrun2010
# 5. 运行游戏
cd ~/.wine/drive_c/GOG\ Games/HoMM\ 3\ Complete/
WINEPREFIX=~/.wine-homm3 wine ./HD_Launcher.exe
fixme:actctx 警告其实是「致命错误」的前兆 —— 解决这个问题的唯一可靠方式是放弃 64 位 Wine 环境,直接用纯 32 位环境运行(这是老 Windows 游戏在 Wine 下的黄金法则)。# 创建名为 .wine-homm3 的纯32位环境(路径:~/.wine-homm3)
WINEARCH=win32 WINEPREFIX=~/.wine-homm3 winecfg
# 安装 comctl32 + 所有必要运行库(纯32位,不会触发64位下载)
WINEPREFIX=~/.wine-homm3 winetricks comctl32 vcrun2005 vcrun2008 dotnet20sp2 dx9
fixme 警告也不用管,只要没有 error 就说明安装成功# 进入32位环境的 system32 目录
cd ~/.wine-homm3/drive_c/windows/system32/
# 强制注册 comctl32.ocx
WINEPREFIX=~/.wine-homm3 wine regsvr32 comctl32.ocx
# 注册 mscomctl.ocx(英雄无敌3 HD 启动器专用)
WINEPREFIX=~/.wine-homm3 wine regsvr32 mscomctl.ocx
# 进入游戏目录(注意你的游戏在 .wine32 目录下,路径要对应)
cd ~/.wine32/drive_c/GOG\ Games/HoMM\ 3\ Complete/
# 用纯32位环境运行 HD 启动器
WINEPREFIX=~/.wine-homm3 wine ./HD_Launcher.exe
# 如果 HD 启动器仍打不开,直接运行游戏主程序(绕过 HD 补丁)
# WINEPREFIX=~/.wine-homm3 wine ./heroes3.exe
# 运行原版英雄无敌3主程序(跳过 HD 补丁,兼容性最好)
WINEPREFIX=~/.wine-homm3 wine ~/.wine32/drive_c/GOG\ Games/HoMM\ 3\ Complete/heroes3.exe
WINEPREFIX=~/.wine-homm3 运行游戏,彻底避开 64 位兼容问题。