Utilities · Published
How to fix error 0xc000007b on Windows 11
The message "The application was unable to start correctly (0xc000007b)" means Windows found a program file or one of its DLLs but could not load it. Microsoft names this status STATUS_INVALID_IMAGE_FORMAT, or Bad Image: the file is either not designed to run on this Windows or contains an error. In practice it usually means a 64-bit program picked up a 32-bit DLL, or the other way round, because 64-bit Windows cannot load a 32-bit DLL into a 64-bit process or a 64-bit DLL into a 32-bit one.
Such mismatches typically come from DLLs copied by hand from download sites, a damaged runtime installation or a broken copy of the program itself. Work through the methods in order: find out whether the program is 32-bit or 64-bit, undo manual DLL copies, repair both Visual C++ runtimes, then reinstall the program. If your message names a missing file instead of 0xc000007b, see how to fix VCRUNTIME140.dll was not found or how to fix MSVCP140.dll is missing.
What 0xc000007b means and how it differs from a missing DLL
Windows reports different codes for different loading failures. Microsoft's NTSTATUS reference lists them:
- 0xC000007B, STATUS_INVALID_IMAGE_FORMAT: a file was found but has the wrong format, most often the wrong architecture.
- 0xC0000135, STATUS_DLL_NOT_FOUND: a required DLL was not found at all. This is the "was not found" message.
- 0xC0000139, STATUS_ENTRYPOINT_NOT_FOUND: the DLL was found but is too old and lacks a function the program needs.
So with 0xc000007b, the problem is not a missing file but a wrong one. Copying in yet another DLL does not help if it has the wrong architecture; it can cause this exact error.
Two Windows details explain why the mix-up is easy. First, on 64-bit Windows the C:\Windows\System32 folder holds the 64-bit DLLs, and 32-bit DLLs live in C:\Windows\SysWOW64, despite what the names suggest. Second, Windows looks for a DLL in the program's own folder before it looks in the system folder, so one wrong file next to the EXE overrides the correct system copy.
Method 1: Check whether the program is 32-bit or 64-bit
Windows 11 runs only on 64-bit processors, but it still runs 32-bit programs. You need to know which kind is failing:
- Open Start, Settings, System, About. Under Device specifications, System type shows a 64-bit operating system.
- Right-click the program's shortcut, select Open file location and look at the path. 32-bit programs normally install under C:\Program Files (x86), 64-bit programs under C:\Program Files.
- Check the developer's download page or the installer name: many offer separate x86 (32-bit) and x64 (64-bit) builds. If you installed the wrong one, install the other build.
A 32-bit program needs 32-bit (x86) DLLs, including the x86 Visual C++ runtime, even on 64-bit Windows. A 64-bit program needs the x64 versions. Games often ship both a 32-bit and a 64-bit executable; if only one fails, the problem is in the DLLs for that architecture.
Method 2: Undo DLLs you copied by hand
If you or a "DLL fixer" tool copied files such as vcruntime140.dll, msvcp140.dll or d3dx9_43.dll into place, undo that first:
- Open the program's installation folder and sort by Date modified. Move any DLL you added yourself to a folder on the desktop instead of deleting it, so you can put it back if needed.
- Do not delete files from C:\Windows\System32 or C:\Windows\SysWOW64. If you overwrote a file there, repair the runtime it belongs to (Method 3) so its installer puts back the correct version.
- If you added a folder to the PATH environment variable to make an error go away, remove that entry. Windows searches PATH folders for DLLs too, so a folder full of 32-bit DLLs can break 64-bit programs.
- Start the program again.
If a site supplied the DLL, also scan the PC: Microsoft notes that anyone who controls a folder Windows searches can plant a malicious DLL there, and a downloaded DLL works exactly that way. See how to check if an EXE file is safe.
Method 3: Install and repair both Visual C++ runtimes
Most Windows programs are built with Microsoft Visual C++ and need its runtime. Microsoft states that the redistributable's architecture must match the program's, and that the x86 package installs the 32-bit libraries on both 32-bit and 64-bit Windows. On Windows 11, install both:
- Open Microsoft's page Latest supported Visual C++ Redistributable downloads on learn.microsoft.com.
- Download and run the X64 package (vc_redist.x64.exe) and the X86 package (vc_redist.x86.exe). The latest v14 package covers programs built with Visual Studio 2015 through 2026.
- If setup reports that it failed, a newer version is probably already installed. Open Start, Settings, Apps, Installed apps and search for Visual C++.
- For each Microsoft Visual C++ v14 Redistributable entry, x64 and x86, select the More (…) button, select Modify and choose Repair. In Control Panel, Programs and Features, the same option is under Change.
- Restart the PC and try the program again.
The Visual C++ Redistributable does not include the old 2013 and earlier runtimes. A program from that era needs its own package, which is linked on the same Microsoft page.
Method 4: Reinstall the program
Microsoft's own text for this status advises installing the program again from the original installation media. A reinstall replaces a damaged EXE or a DLL of the wrong architecture inside the program folder:
- Uninstall the program in Start, Settings, Apps, Installed apps. If it will not uninstall, see how to uninstall programs that won't uninstall.
- Restart the PC, download the current installer from the developer's site and install it, choosing the build that matches Method 1.
- For a Steam game, open the Library, right-click the game, select Properties, then Installed Files, and select Verify integrity of game files. Steam replaces missing or damaged files.
Steam can also install the shared components a game declared, such as Visual C++, .NET and DirectX 9, through Steamworks Common Redistributables; Valve's documentation says both 64-bit and 32-bit versions are installed on 64-bit systems where applicable.
Method 5: Add DirectX and .NET components for older programs
Older games and programs sometimes depend on components Windows 11 does not include by default:
- For older games, run Microsoft's DirectX End-User Runtime web installer. It adds legacy libraries such as D3DX9, D3DX10, D3DX11, XAudio 2.7 and XInput 1.3. It does not change the DirectX version built into Windows.
- If a program asks for .NET Framework 3.5, open Start, search for Windows Features, open Turn Windows features on or off, tick .NET Framework 3.5 (includes .NET 2.0 and 3.0) and select OK. On Windows 11 26H1 (build 28000) and later, Microsoft provides .NET Framework 3.5 only as a standalone installer.
These packages fix programs that need the components; they will not help a program whose own files have the wrong architecture.
Method 6: Repair Windows system files with DISM and SFC
If several programs fail with 0xc000007b, or Windows itself shows other errors, a Windows system file may be damaged. Microsoft recommends running DISM before SFC:
- Select Start, type cmd, right-click Command Prompt and select Run as administrator.
- Run DISM.exe /Online /Cleanup-image /Restorehealth and wait for it to finish. It downloads repair files through Windows Update.
- Run sfc /scannow and do not close the window until verification reaches 100%.
- Restart the PC.
SFC checks only Windows' protected system files. It does not repair the Visual C++ runtime, DirectX extras or the program itself, which is why Methods 2 to 5 come first.
Find the wrong DLL with Process Monitor
If nothing above helps, Process Monitor from Microsoft Sysinternals shows which file the program loads just before it fails:
- Download Process Monitor from Microsoft Learn, extract it and run it as administrator.
- Open Filter, add Process Name is your program's EXE name, then Include, and apply.
- Start the program and stop the capture (Ctrl+E) as soon as the error appears.
- Look at the last DLL paths the program opened. A 64-bit program loading a DLL from SysWOW64, or any program loading a runtime DLL from its own folder, a PATH folder or a downloads folder, points to the culprit.
Remove or replace that one file using Method 2, 3 or 4, depending on where it came from.
Free tools for this job
| App | Best for | License | Price | Download |
|---|---|---|---|---|
| Getting correct x86 and x64 runtime DLLs from Microsoft | Freeware | Free | Review | |
| Older games that need D3DX9, XInput 1.3 or XAudio 2.7 | Freeware | Free | Review | |
| Seeing exactly which DLL a failing program loads | Freeware | Free | Review |
1. Microsoft Visual C++ Redistributable — Runtime Library
Best for: Getting correct x86 and x64 runtime DLLs from Microsoft
- Freeware
- Free
- Utilities
The Visual C++ Redistributable installs Microsoft's C and C++ runtime libraries. Install both the x64 and the x86 package on Windows 11, because 32-bit programs use the x86 one. One v14 package covers programs built with Visual Studio 2015 to 2026; the legacy 2013 and older runtimes are separate downloads.
Pros
- Official Microsoft package
- Permanent link always gets the latest version
- Fixes common missing-DLL errors
Cons
- Does not include the legacy 2013 and older runtimes
- Latest version supports only Windows 10, 11 and Server 2016 or later
- 32-bit apps need the separate x86 package
2. DirectX End-User Runtime — Runtime Library
Best for: Older games that need D3DX9, XInput 1.3 or XAudio 2.7
- Freeware
- Free
- Utilities
Microsoft's DirectX End-User Runtime web installer adds the optional libraries from the legacy DirectX SDK that many older games were built with. It leaves the DirectX in Windows untouched, needs an internet connection during installation and does nothing for newer games.
Pros
- Official Microsoft installer
- Fixes common missing d3dx9 and xinput DLL errors
- Tiny download
Cons
- Does not update DirectX 11 or 12 in Windows
- Needed only for older games and apps
- Requires an internet connection during installation
3. Process Monitor — System Monitor
Best for: Seeing exactly which DLL a failing program loads
- Freeware
- Free
- Utilities
Process Monitor records every file access with the process behind it, so a filter on the failing EXE shows which DLL paths it tried just before the error. It produces a flood of events and takes practice to read, and the current version lists Windows 11 as its supported client.
Pros
- Shows exactly which files and registry keys an app uses
- Powerful non-destructive filtering
- Official Microsoft tool, no ads
Cons
- Current version lists only Windows 11 as supported client
- Captures millions of events and uses a lot of memory if left running
- Closed source
Frequently asked questions
What does error 0xc000007b mean?
It is the Windows status STATUS_INVALID_IMAGE_FORMAT, shown as Bad Image: the program or one of its DLLs has a format Windows cannot load. Most often a 32-bit DLL is loaded into a 64-bit program or the other way round.
Is 0xc000007b the same as a missing DLL error?
No. A missing DLL is 0xc0000135, shown as "was not found". With 0xc000007b the file exists but is the wrong one, so copying in more DLLs can make it worse.
Do I need both the x86 and x64 Visual C++ Redistributable?
On Windows 11, yes, if you run both kinds of programs. Microsoft says the package architecture must match the program, and 32-bit programs use the x86 package even on 64-bit Windows.
Can I fix 0xc000007b by downloading a DLL?
No. DLL download sites rarely say which architecture or version a file is, and a mismatched DLL is the main cause of this error. Such files can also contain malware. Get runtime files only from Microsoft's installers.
Will reinstalling DirectX fix 0xc000007b?
Only if an older game needs the legacy DirectX libraries. The DirectX End-User Runtime adds D3DX, XInput and XAudio files and does not change the DirectX built into Windows.
Should I run SFC /scannow for 0xc000007b?
Run DISM and then SFC if several programs fail or Windows shows other errors. SFC repairs only protected Windows files, not the Visual C++ runtime or the program's own DLLs.
ExeDepot does not host installers. Every download button opens the developer's own server or official download page. Prices and licenses come from each developer's site and were checked on .


