Who is this for?

This is an introductory topic for developers who want to learn how to port their Win32 applications to Arm64

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Create C/C++ Win32 DLL
  • Use Win32 DLL in the Console App
  • Learn how to port the C/C++ Win32 DLL to Arm64

Prerequisites

Before starting, you will need the following:

Summary

AI-assisted

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.

Close
?
You’ll create a C++ Win32 dynamic-link library (DLL) and use it from a Windows console application. First, you’ll configure both projects for Arm64, rebuild them, and verify that the console app loads and calls the DLL successfully. Then, you’ll switch between x64 and Arm64 builds to compare execution time on Windows on Arm.

Frequently asked questions

AI-assisted

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.

Close
?
Which projects do I need to create to follow this path?
Create a C++ Win32 DLL and a Windows console application that uses the DLL. The console app should call at least one exported function from the DLL.
How do I know the build produced Arm64 binaries?
Build the projects with an Arm64 target and run the resulting console app on Windows on Arm. If the app starts and calls into the DLL without loader errors, the artifacts match the expected architecture.
What should I check if the console app can't load the DLL after retargeting?
Verify that both the DLL and console app are built for the same architecture (Arm64). Also confirm the DLL is in the app’s runtime search path when you launch the executable.
How do I switch between x64 and Arm64 builds?
Select x64 or ARM64 from the platform dropdown, then select Local Windows Debugger. Run both configurations and compare the execution times reported by the application.
Can I complete this on a Windows on Arm virtual machine?
Yes. You can use a Windows on Arm computer or a Windows on Arm virtual machine.
Next