「0xc000007b」でPCゲームが起動しない原因|Visual C++・32bit/64bit・DirectXを確認【2026年版】
本記事にはアフィリエイト広告(Amazon・楽天市場等)のリンクが含まれています。
32bit/64bitの不一致とVisual C++・DirectXを確認する
PCゲームを起動したときに、「アプリケーションを正しく起動できませんでした(0xc000007b)。[OK]をクリックしてアプリケーションを閉じてください。」と表示され、ゲームがまったく起動しないことがあります。ゲームを再インストールしても直らず、Windows 11やDirectX 12が最新なのに発生するケースもあります。
結論からいうと、0xc000007bは単純に「Visual C++が入っていない」という意味のエラーではありません。Windowsでは0xC000007Bは「STATUS_INVALID_IMAGE_FORMAT」に対応しており、実行しようとしているEXEや読み込もうとしているDLLの形式に問題がある場合に発生します。32bitプロセスは64bit DLLを、64bitプロセスは32bit DLLを、それぞれ実行用として読み込めない仕様が主な原因です。
この記事では、エラーコード自体の意味と症状別の切り分け方を中心に解説します。Visual C++ RedistributableやDirectXランタイムの詳しい仕組みは別記事で扱っているため、ここでは0xc000007bの診断に必要な範囲に絞ります。
目次
要点まず何が分かるか
0xc000007bはWindowsの「STATUS_INVALID_IMAGE_FORMAT」であり、EXEやDLLのアーキテクチャ不一致や破損で発生すること。アクセス違反を示す0xc0000005とは別のエラーであること。1タイトルだけか複数タイトルで発生するかで優先して確認する場所が変わること。64bit Windowsでも32bitゲームにはx86ランタイムが必要な場合があること。DLLを手動でSystem32等へコピーする対処は避けるべきこと。管理者実行や互換モードは0xc000007b専用の修復機能ではないこと。
仕組み0xc000007bとは
0xc000007bはWindowsのエラーコードで、「STATUS_INVALID_IMAGE_FORMAT」として扱われます。「Image」と書かれていますが、写真や画像ファイルが壊れているという意味ではなく、Windowsで実行するEXEやDLLなどのバイナリを正しく読み込めない状態を示しています。
Microsoft公式のテクニカルブログでは、このエラーが発生する典型例として、x64プロセスがx86(32bit)向けにビルドされたDLLを読み込もうとして「形式が不正」と判定されるケースを挙げています。逆に64bitのDLLを32bitプロセスが読み込もうとする場合も同様です。同ブログで紹介されている実例では、64bit版が入っているべきフォルダーに32bit版の同名DLL(mfc140ud.dll)が置かれていたことが原因でした。ファイル自体が本当に破損しているケースもありますが、実務上はアーキテクチャの不一致が原因であることが多いとされています。
PCゲームではゲーム本体だけでなく、Visual C++、DirectX、ゲームランチャー、アンチチートなど多数の外部コンポーネントを読み込んで起動します。その中の1つが破損していたり、ゲームのアーキテクチャと合っていなかったりすると、ゲーム画面が表示される前に0xc000007bで終了することがあります。
類似エラー0xc0000005とは別のエラー
数字が似ているエラーに0xc0000005がありますが、両者は別物です。0xc0000005はアクセス違反を意味し、実行中のプログラムが無効なメモリアドレスへアクセスした場合などに発生します。ゲームが動き始めたあとに不正なメモリアクセスで落ちる0xc0000005に対し、0xc000007b(STATUS_INVALID_IMAGE_FORMAT)はゲームや依存DLLを正常な実行形式として読み込めず、起動段階で止まるケースが中心です。そのため0xc000007bでは、最初からRAM故障やGPUの不安定さを疑う必要性は高くありません。まず実行ファイル・DLL・ランタイム環境を確認します。0xc0000005が表示される場合は別記事で対処法を解説しています。
切り分け症状から原因の候補を絞る
0xc000007bの原因は1つではありませんが、症状からある程度切り分けられます。特に確認したいのが、1タイトルだけなのか複数タイトルで発生するのかです。
| 症状 | 疑いやすい原因 |
|---|---|
| 1タイトルだけ発生する | ゲームファイル・ゲーム付属ランタイム |
| 複数のゲームで発生する | Visual C++・DirectX・Windows |
| 古いゲームだけ発生する | 旧世代のVisual C++・DirectXランタイム |
| Windows再インストール後に発生 | 必要ランタイムの不足 |
| DLLを手動で入れたあと発生 | x86/x64 DLLの混在 |
| MOD導入後に発生 | MOD側のDLL・ゲームファイル |
| ゲーム以外のアプリでも発生 | Windowsシステムファイルの破損 |
1タイトルだけならゲーム側を優先し、複数タイトルで同じ0xc000007bが出るならVisual C++やWindows側まで確認範囲を広げると効率的です。
最初の確認再起動とゲームファイルの確認
まずWindows自体を再起動してください。Steamのウィンドウを閉じるだけではなく、Windows本体を再起動します。ゲームの更新やランタイムのインストール後は、使用中だったDLLが残った状態になっている場合があります。
特定のゲームだけ0xc000007bになるなら、次にゲームファイルを確認します。Steamライブラリで対象ゲームを右クリックして「プロパティ」を開き、「インストール済みファイル」から「ゲームファイルの整合性を確認」を実行してください。Epic Games Launcherでもライブラリからゲームのメニューを開き、「管理」から「確認」を実行できます。ゲームアップデート直後から0xc000007bが出るようになった場合や、ゲームフォルダーのDLLを変更したあとに発生した場合は特に有効です。100GBを超えるゲームを丸ごと再ダウンロードする前に試したい方法です。
アーキテクチャ64bit Windowsでもx86版ランタイムが必要になる理由
「Windows 11が64bitだからVisual C++もx64だけ入れればいい」とは限りません。64bit版WindowsにはWOW64という仕組みがあり、32bit(x86)アプリケーションも実行できますが、32bitアプリが読み込むDLLも基本的には32bitである必要があります。Microsoftも、32bitプロセスから64bit DLLを実行用としてロードすることはできず、逆に64bitプロセスから32bit DLLを読み込むこともできないと説明しています。
つまり64bit版Windowsを使用していても、32bitゲームにはx86ランタイム、64bitゲームにはx64ランタイムが必要になる可能性があります。PCゲームを複数遊ぶWindows 11 PCでx86版とx64版のVisual C++ Redistributableの両方がインストールされていること自体は異常ではありません。Visual C++やDirectXのランタイムをどのように確認・修復するかはSteamの初回セットアップに関する別記事で詳しく解説しているので、そちらを参照してください。
付属コンポーネントゲーム内の_CommonRedistフォルダーも確認する
Steamなどで購入したPCゲームには、そのタイトルが必要とするDirectX・Visual C++のインストーラーが、ゲーム本体と一緒にフォルダー内へ収録されている場合があります。ゲームのインストール先フォルダーに_CommonRedist、Redist、Prerequisites、Supportといった名前のフォルダーがないか確認してください。中に個別のDirectXやVisual C++のセットアップファイルが含まれていれば、そのゲームが開発時に想定していたランタイム環境をまとめて再構築できます。ただしフォルダー構成はゲームによって異なり、必ず用意されているとは限りません。SteamやEpic Games、ゲーム公式が別途修復手順を案内している場合は、そちらを優先してください。
注意DLLを手動でコピーしない
0xc000007bを検索すると、「○○.dllをダウンロードしてSystem32へコピーする」「DLLをゲームフォルダーへ直接入れる」といった方法が見つかることがあります。これはおすすめしません。0xc000007bは32bitと64bitの不一致でも発生するため、原因を確認せずDLLを置き換えると状況をさらに悪化させる可能性があります。また、配布元が不明なDLLにはセキュリティ上のリスクもあります。
WindowsのシステムフォルダーにはC:\Windows\System32(64bit DLL用)とC:\Windows\SysWOW64(32bit DLL用)があり、名前と中身が逆に見える紛らわしい構造です。この2つへネット上から入手したDLLを手動でコピーする方法も避けてください。間違ったアーキテクチャのDLLをWindowsシステムフォルダーへ置くと、1ゲームだけだった問題がほかのアプリにも広がる可能性があります。Visual C++ならMicrosoft公式Redistributable、DirectXならMicrosoft公式DirectX End-User Runtime、ゲーム本体ならSteamやEpic Gamesのファイル確認機能から正規ファイルを復元する方が安全です。
個別ケースMOD導入後・別PCからコピーした場合
MODを導入した直後から発生したなら、一度バニラ状態へ戻して確認します。特にDLLをゲームフォルダーへ追加するタイプのMOD、ReShade、古いプラグイン、非公式ランチャーなどでは、ゲーム本体とは異なるアーキテクチャのDLLを読み込もうとして起動に失敗する可能性があります。一度追加したファイルを外し、Steamならゲームファイルの整合性確認を実行してください。整合性確認後にゲームが起動できるなら、WindowsやVisual C++ではなくMOD側に原因がある可能性が高くなります。
別PCからゲームフォルダーをそのままコピーした場合や、特定のDLLを手動で交換したあとに発生した場合も、32bit・64bitの不一致を疑う価値があります。むやみにDLL単体を交換するより、ゲームが使用する正式なランタイムを再インストールした方が安全です。
その他の確認GPUドライバー・管理者実行・互換モードは効果が限定的
GPUドライバーのインストールが破損していると、ゲームが必要とするグラフィックス関連DLLを正常に読み込めなくなる可能性はありますが、0xc000007bで最初にGPUドライバーを疑う必要はありません。ゲーム起動直後に0xc000007bだけが表示されるなら、まずゲームファイルと依存ランタイムを確認してください。複数の3Dゲームで同時に発生し、GPUドライバーを更新した直後から始まったという状況であれば、ドライバーの再インストールや以前の安定版との比較を検討する価値があります。
「管理者として実行」に変更すれば直るのではと考える方もいますが、0xc000007bは実行イメージ形式の問題を示すエラーのため、単純なアクセス権不足とは性質が異なります。ゲームランチャーやアンチチートで権限関連の問題が起きている場合には意味がありますが、32bit・64bit DLLの混在は管理者権限を与えても解消しません。Windowsの互換モードも同様で、非常に古いゲームでWindowsバージョン依存の問題がある場合には効果がある可能性はあるものの、64bitプロセスが32bit DLLを読み込めないという基本的な制約自体は互換モードでも変わりません。どちらも0xc000007b専用の修復機能ではないため、症状に合わない対処法から順番に試すより、原因の切り分けを優先したほうが早く解決できます。
最終確認複数アプリで発生するならDISMとSFCを実行する
Steamの1ゲームだけではなく、複数のゲームやWindowsアプリでも0xc000007bが発生する場合は、Windowsのシステムファイルが破損している可能性を確認します。管理者としてターミナルまたはコマンドプロンプトを開き、次の順番で実行してください。
| 手順 | コマンド |
|---|---|
| ① DISM実行 | DISM.exe /Online /Cleanup-image /Restorehealth |
| ② SFC実行 | sfc /scannow |
Microsoftは、先にDISMを実行して修復に必要なファイルを用意し、その後SFCで保護されたシステムファイルをスキャンして破損したファイルを修復する手順を案内しています。検証が100%になるまでウィンドウを閉じないでください。特定のゲームだけが起動しない場合は、Windows全体の修復を最初に行う必要はなく、ゲームファイル・アーキテクチャの一致・ランタイムを先に確認してください。
0xc000007bが1タイトルだけで発生している場合、最初からDISMやSFCを実行する必要はありません。1ゲームだけならゲームファイルや付属ランタイムの方が可能性を絞りやすいためです。逆に、複数のSteamゲームやゲーム以外のWindowsアプリでも発生している状態なら、Windows側を疑う根拠が強くなります。
発売時期古いゲームと最新ゲームで確認する優先順位を変える
2000年代から2010年代前半に発売された古いPCゲームだけ0xc000007bになる場合は、旧世代の32bit実行ファイルが、現在のWindows標準環境には含まれない旧DirectX SDKコンポーネントや古いVisual C++ Redistributableを利用していないか確認してください。Microsoftは旧DirectX SDK自体はEnd of Lifeとしていますが、古いゲームやプロジェクトのために「DirectX End-User Runtimes」を現在も公式に提供しています。最新のDirectX 12とVisual C++ v14だけを確認して終わらせず、そのゲームが発売された時代の前提コンポーネントも候補に入れましょう。
反対に、最近発売された64bitゲームだけ起動しない場合は、古いDirectX 9系のコンポーネントより、Visual C++ v14系ランタイムやゲームフォルダー内のDLLを優先して確認したほうが早く原因にたどり着きやすくなります。ゲーム更新の直後に発生したなら整合性確認を行い、MOD・ReShade・DLL系プラグインを利用している場合は一度外してください。それでも同じゲームだけ起動しない場合は、ゲーム公式が案内している既知の不具合情報も確認する価値があります。
対処の順序ゲームの再インストールはランタイム確認後でよい
0xc000007bが表示されると、ゲームをアンインストールして最初からインストールし直したくなるかもしれません。しかし、原因がVisual C++やDirectX、アーキテクチャの不一致であれば、ゲームを何度再インストールしても改善しない場合があります。まず整合性確認、次にVisual C++・DirectXの状態を確認してください。それでも1ゲームだけ起動しない場合に、ゲーム本体の再インストールを検討します。
FAQよくある質問
結論まとめ|多くは32bit・64bitの不一致
PCゲーム起動時の「0xc000007b」は、WindowsではSTATUS_INVALID_IMAGE_FORMATとして扱われるエラーです。Visual C++不足だけを示すエラーではなく、ゲームが読み込むEXEやDLLの破損、32bit・64bitの不一致などが原因になる可能性があります。Microsoft公式のテクニカルブログでも、64bitプロセスが32bit DLLを読み込もうとして発生した実例が紹介されており、アーキテクチャの不一致が典型的な原因とされています。
まずPCを再起動し、Steamなら「プロパティ→インストール済みファイル→ゲームファイルの整合性を確認」を実行してください。1タイトルだけで発生するならゲーム側を優先し、複数タイトルやWindowsアプリでも発生するならVisual C++・DirectXランタイム、最後にDISMとSFCによるWindows修復へ進みます。0xc000007bを直すために、出所不明のサイトからDLLファイルをダウンロードしてSystem32へコピーする方法は避けてください。ゲームファイル確認→アーキテクチャの一致確認→ランタイム確認→Windows修復の順に正規の方法で進めるのが、安全かつ原因を切り分けやすい対処方法です。



