To check a Windows program or library, inspect the file’s Portable Executable (PE) header and read its Machine field together with the optional-header format. IMAGE_FILE_MACHINE_I386 with a PE32 optional header identifies 32-bit x86; IMAGE_FILE_MACHINE_AMD64 with PE32+ identifies x64. To check Windows itself, open Settings > System > About and read System type under Device specifications. These are separate checks: a 64-bit installation can run many 32-bit programs, but it does not make a particular EXE or DLL 64-bit.
First decide what you need to identify
“How do I check if an EXE or DLL is 32-bit or 64-bit?” and “Is my Windows system 32-bit or 64-bit?” have different answers. Windows Settings reports the operating system architecture. A PE-header inspection reports the architecture encoded in one executable image. Checking the wrong one can lead to a false conclusion when diagnosing an installer, plug-in, driver, or missing DLL.
| # | Preview | Product | Price | |
|---|---|---|---|---|
| 1 |
|
Microsoft Windows 11 (USB) | $128.99 | Buy on Amazon |
| 2 |
|
Microsoft System Builder | Windоws 11 Home | Intended use for new systems | Install on a new PC |... | Buy on Amazon |
As an Amazon Associate I earn from qualifying purchases.
Check the Windows operating system
- Open Settings.
- Select System, then About.
- Under Device specifications, find System type.
The value describes the installed Windows system and, on some editions, the processor capability Windows detected. Microsoft documents Windows 11 as 64-bit only, so a Windows 11 installation is not a 32-bit Windows installation. This screen does not inspect an arbitrary EXE, DLL, or SYS file. A 64-bit Windows result therefore cannot be used as proof that every application on the machine is x64.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Check one file
For an executable image, use a PE-header utility and inspect the Machine field and optional-header signature. This applies to common Windows .exe, .dll, and .sys images. The header is metadata stored in the file itself, so it remains the relevant evidence even when the file is not installed or cannot be launched.
#1 Best Overall
- Less chaos, more calm. The refreshed design of Windows 11 enables you to do what you want effortlessly.
- Biometric logins. Encrypted authentication. And, of course, advanced antivirus defenses. Everything you need, plus more, to protect you against the latest cyberthreats.
- Make the most of your screen space with snap layouts, desktops, and seamless redocking.
- Widgets makes staying up-to-date with the content you love and the news you care about, simple.
- Stay in touch with friends and family with Microsoft Teams, which can be seamlessly integrated into your taskbar. (1)
How Windows records architecture in a PE file
Windows executable images use the Portable Executable format. Its COFF header contains a Machine value, while the optional header identifies whether the image uses the 32-bit PE32 form or the 64-bit PE32+ form. Microsoft’s PE specification defines these fields; they are more dependable than a filename, installation folder, or the operating system on which the file happens to be examined.
Machine values
IMAGE_FILE_MACHINE_I386means 32-bit x86 (often shown by tools as I386 or x86).IMAGE_FILE_MACHINE_AMD64means x64 (often shown as AMD64, x64, or x86-64).- Other values identify Arm targets. ARM and ARM64 are distinct from x86 and x64, even though ARM64 is a 64-bit architecture.
Consequently, “64-bit” alone is incomplete when software may run on Windows on Arm. A plug-in compiled for x64 is not automatically an ARM64 plug-in, and an x86 image is not interchangeable with an Arm image.
PE32 versus PE32+
The optional-header format supplies a second check. PE32 is the 32-bit optional-header form; PE32+ is the 64-bit form. Read it alongside Machine, not instead of it. A clear x86 result normally appears as I386 plus PE32, while a clear x64 result appears as AMD64 plus PE32+. If a utility reports an Arm machine value, use that explicit target rather than reducing it to a generic “32” or “64.”
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Methods compared
| Method | What it identifies | Architecture coverage | Header inspection | Trust and limits |
|---|---|---|---|---|
| Settings > System > About | Installed Windows architecture | Reports the Windows system type; it does not classify a file | No | Built into Windows and appropriate for the OS question |
| PE-header inspection utility | The architecture encoded in one EXE, DLL, or SYS | x86, x64, ARM, ARM64, and other PE machine values when supported | Yes; reads Machine and PE32/PE32+ | Best choice for a file-level answer; use a reputable, maintained utility |
| DUMPBIN header output | The PE headers of a selected image | Shows the machine and optional-header information exposed by the file | Yes | Microsoft developer tool; available from a Visual Studio Developer Command Prompt |
| Microsoft Sysinternals Sigcheck | File version information and signature status | Useful for establishing file identity and provenance; architecture still needs a header view when it is not shown in the output | Not a substitute for reading Machine unless the displayed output explicitly includes it | Microsoft-maintained utility; the Sysinternals catalog listed version 2.92 on September 10, 2026, and versions can change |
| Program Files folder name | An installation convention | Not a complete architecture list | No | Program Files (x86) is a clue about packaging, not PE metadata |
Use DUMPBIN to inspect an EXE or DLL
DUMPBIN is a practical developer-oriented route when Visual Studio tools are installed. It reads headers without executing the target file.
- Open a Developer Command Prompt for Visual Studio whose toolset matches the installed Visual Studio environment.
- Change to the directory containing the image, or use its full path.
- Run
dumpbin /headers "C:pathtoexample.dll". Replace the path and filename with the file you need to inspect. - In the output, locate the FILE HEADER VALUES area and read machine. Look for an I386/x86, AMD64/x64, ARM, or ARM64 designation.
- Read the optional-header indication as well. PE32 supports the 32-bit interpretation; PE32+ supports the 64-bit interpretation.
If the command reports that dumpbin is not recognized, the prompt is not configured for the Visual Studio tools or DUMPBIN is not installed. Open the developer prompt supplied with Visual Studio rather than adding an unrelated executable to the normal system path. If the file path contains spaces, keep the quotation marks.
Interpreting an unexpected result
Do not classify a file from the process that launched it. A 32-bit launcher may start a 64-bit child process, and a 64-bit application may load a 32-bit helper in a separate process. The header belongs to the specific image named in the command. For a failure involving a plug-in, inspect the plug-in DLL and the host executable separately.
Use a graphical PE inspector
A graphical PE utility can be easier when you need to examine many files or when a command prompt is unavailable. Open the image in the utility and navigate to its COFF or file-header view. Record the displayed Machine value, then check whether the optional header is labeled PE32 or PE32+. Prefer a tool that names the raw PE fields rather than one that merely displays a marketing label such as “32-bit application.”
For downloaded utilities, verify the publisher and the file signature before opening them. Microsoft’s Sysinternals catalog is one maintained source for Windows inspection tools. Sigcheck can dump file version information and verify image signatures; use that information to confirm that the image you opened is the intended file, and use a header view for the architecture when Sigcheck’s output does not state it.
Rank #2
- STREAMLINED & INTUITIVE UI, DVD FORMAT | Intelligent desktop | Personalize your experience for simpler efficiency | Powerful security built-in and enabled.
- OEM IS TO BE INSTALLED ON A NEW PC with no prior version of Windows installed and cannot be transferred to another machine.
- OEM DOES NOT PROVIDE SUPPORT | To acquire product with Microsoft support, obtain the full packaged “Retail” version.
- PRODUCT SHIPS IN PLAIN ENVELOPE | Activation key is located under scratch-off area on label.
- GENUINE WINDOWS SOFTWARE IS BRANDED BY MIRCOSOFT ONLY.
Managed .NET applications need a second check
.NET executables still have a PE base format, so the Machine and PE32/PE32+ fields are the correct starting point. However, a managed application can carry runtime settings such as Prefer 32-bit. Those settings influence how the common language runtime chooses a process architecture on a 64-bit operating system. They can make deployment behavior differ from a simplistic x86/x64 label.
When a .NET program behaves differently from its header label, inspect the project or assembly settings as a second step. Treat the PE architecture as the file’s encoded target and the managed-runtime flags as execution policy. Do not use the runtime preference to rewrite the Machine value; both pieces of information answer different questions.
Why bitness matters for DLLs and plug-ins
Windows includes WOW64 compatibility so many 32-bit Windows applications can run on 64-bit Windows. That compatibility does not remove the process boundary between 32-bit and 64-bit code. Microsoft’s Win32 documentation states: “32-bit processes cannot load 64-bit DLLs for execution, and 64-bit processes cannot load 32-bit DLLs for execution.”
A common failure pattern
- A 32-bit host program starts successfully on 64-bit Windows.
- The host searches for a plug-in or support DLL.
- The DLL was compiled for x64, so the 32-bit process rejects it.
- The application reports a generic load, entry-point, or bad-image error.
The reverse is equally possible: a 64-bit host cannot execute a 32-bit in-process DLL. Inspect both files’ headers before changing PATH entries or reinstalling the operating system. If the components must load in the same process, they need compatible architectures; otherwise, use an out-of-process bridge designed for that software.
Troubleshooting by symptom
The program launches, but a plug-in does not
- Inspect the host EXE with DUMPBIN or a PE utility.
- Inspect the plug-in DLL separately.
- Compare the Machine values and PE32/PE32+ forms.
- If they differ, obtain a plug-in build for the host’s architecture or use a supported separate-process integration.
Windows says the system is 64-bit, but an installer says x86
There is no contradiction. The Settings page describes Windows; the installer label describes the package or executable. Confirm the installer’s PE header if the label is ambiguous, then check whether it installs a separate 64-bit component.
The folder suggests one architecture, but the header says another
Trust the header for the file-level question. Vendors commonly place 32-bit software under Program Files (x86) and 64-bit software under Program Files, but packaging conventions can vary, especially for launchers, shared components, and manually copied files.
A header utility cannot open the file
- Confirm that you selected the actual EXE, DLL, or SYS rather than a shortcut, installer container, script, or document.
- Copy the file to a location you can read and retry.
- Use a second reputable PE viewer or DUMPBIN to rule out a damaged or non-PE file.
- Use signature and version information to confirm that the file is genuine before investigating architecture.
A reliable decision checklist
- Write down whether your question concerns Windows itself, an executable, a DLL, a driver, or a managed runtime.
- For Windows, use Settings > System > About > System type.
- For a file, inspect Machine and the PE32/PE32+ optional-header format.
- Record ARM and ARM64 explicitly instead of calling every 64-bit image x64.
- For .NET, check runtime preferences such as Prefer 32-bit after recording the PE fields.
- When diagnosing a load failure, inspect every in-process component, not just the application that displayed the error.
- Use folder names only as hints and never as the final classification.
This process gives you two defensible answers: what architecture Windows is running and what architecture each individual PE image declares. Keeping those answers separate prevents most 32-bit/64-bit troubleshooting mistakes.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

