Use Arm64EC with Windows 11 on Arm
Introduction
Build an application on Windows 11 using Arm64EC
Next Steps
Use Arm64EC with Windows 11 on Arm
Who is this for?
This is an introductory topic for software developers who want to use Arm64EC with Windows on Arm devices.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Build native Arm applications and migrate x86 or x64 applications to Arm using Arm64EC
- Compare the performance of a simple application using different build configurations
Prerequisites
Before starting, you will need the following:
- A Windows on Arm computer such as the Lenovo Thinkpad X13s running Windows 11.
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
You’ll use Arm64EC with Visual Studio on Windows 11 on Arm to build and compare a simple application. You’ll create native Arm64EC binaries, run them on the device, compare build configurations, and examine how the ABI supports migration from x86 or x64 code and dependencies.
Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
Use a Windows 11 on Arm computer. The Lenovo Thinkpad X13s is one example of suitable hardware.
Install Visual Studio 2022 or later.
For new code, build a native application targeting Arm using Arm64EC. For existing x86 or x64 code, migrate the project using Arm64EC on Windows 11 on Arm.
The build produces a Windows application that runs on the Arm device and produces the expected output for the simple example. Successful execution confirms the build and configuration are correct.
Use the same simple application, run each build on the device, and note observed runtime behavior and timing. Keep the test conditions consistent so differences reflect the build configuration.