PIMELauncher.exe fails with 0xc000007b on Windows ARM64 without the x86 VC++ runtime
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 43/100
Research direction
Inspect the Windows ARM64 installer and the build configuration for PIMELauncher.exe, which the report identifies as an x86 Rust executable linked to the dynamic MSVC runtime. First trace how the installer selects and launches VC++ redistributables on ARM64; compare that with the suggested static CRT or native ARM64 launcher options. Done means the launcher starts on a fresh ARM64 install and silent installation completes without an interactive runtime prompt.
Written by the indexing model from the issue text.
Description
On Windows 11 ARM64, PIMELauncher.exe from the 2.0 builds fails to start with 0xc000007b ("The application was unable to start correctly") unless the x86 VC++ runtime is installed. The installer installs the ARM64 (and x64) runtime, but not the x86 one. As a result the backend never starts, and every PIME input method types plain text: the TSF DLL loads in the app but cannot reach the launcher.
Environment
- Windows 11 Enterprise ARM64, build 26100 (a QEMU/KVM VM)
- PIME AppVeyor master build 656 (Oct 21, ARM64X installer); also seen with 2.0.0-beta3
- Python 3.13 ARM64 installed, which puts an ARM64
vcruntime140.dllonPATH
Cause
PIMELauncher.exe is x86 (PE machine 0x14c) and imports VCRUNTIME140.dll dynamically. Rust's MSVC targets link the CRT dynamically unless built with +crt-static. With no x86 runtime in SysWOW64, the loader keeps searching PATH, finds the ARM64 vcruntime140.dll (here from Python), and fails with STATUS_INVALID_IMAGE_FORMAT. Without such a DLL on PATH, it would fail with a "missing DLL" error instead.
Reproduce
- Use a fresh Windows 11 ARM64 machine with Python for ARM64 installed.
- Install PIME (silent or interactive).
- Sign in, or start
PIMELauncher.exe: the error dialog appears, and keys typed in Notepad with a PIME input method come through unconverted. - Install
https://aka.ms/vs/17/release/vc_redist.x86.exe. The launcher now starts (the/log-filelog shows "Watchdog started… Starting PIMELauncher2 Worker on pipe …"), and input methods work.
Possible fixes: build the launcher with a static CRT (RUSTFLAGS="-C target-feature=+crt-static"), install the x86 runtime on ARM64 as well, or ship a native ARM64 launcher.
Related: with /S, the installer still shows the "requires the VC++ Redistributable" message box, and runs the x64 runtime installer interactively on ARM64, so unattended installs stop there. Preinstalling the runtimes with /install /quiet avoids it.
Found while testing an input method built on PIME's Python backend (Claudish), with automated typing tests in a Windows-on-ARM VM. Thanks for the recent ARM64 work; with the x86 runtime installed, the master build works end to end in Notepad.
- Dominant language
- C++
- Stars
- 1.5k
- Forks
- 244
- Avg merge
- 19h 3m
- Merged PRs (30d)
- 36
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from EasyIME/PIME
-
installer: remove obsolete ensureVCRedist check and VC++ redistributable downloadPossibly taken @dannyward630 claimed this 3 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
添加"麼"輕聲 注音˙ㄇㄜ 順序1Openchewing enhancement upstream
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
"麼" 建議加上 ai7Open
Difficulty 1/5 Under an hour Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
蝦米輸入法,使用 Ctrl + / 問題Open
Difficulty 2/5 1-3 hours Newbie friendliness 60/100
EasyIME/PIME#753 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 56/100
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
[BUG] Failed archive extraction deletes the dataset cachePossibly taken @dajiaohuang claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
alibaba/GraphScope#4674 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 93/100
webarkit/WebARKitLib#107 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ONLYOFFICE/DesktopEditors#2527 ·
-
bug good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
HEL3AN/econspace-mmo#529 ·
Maintainers usually reply within 1 day