診断マトリクス:エラー「0xc000007b」の本質と原因
Windowsにおけるエラーコード 0xc000007b(システム定義:STATUS_INVALID_IMAGE_FORMAT)は、64bitのゲームプロセスが32bitのDLLを読み込もうとした、あるいは32bitプロセスが64bitのDLLを読み込もうとしたアーキテクチャの不整合によって発生します。ネット上の出所不明なDLL配布サイトからファイルを直接システムフォルダに配置することは、状況を致命的に悪化させます。
| 障害の兆候 / 発生シーン | 内部競合メカニズム | 原因となりやすいDLL | 根本的な解決手順 |
|---|---|---|---|
ゲーム起動直後に 0xc000007b エラーで即座に落ちる | 実行ファイルとVC++ランタイムのbit数不一致 | MSVCR*.dll, MSVCP*.dll, VCRUNTIME*.dll | VC++ 2015-2022のx86およびx64の両方を再インストール |
| 旧世代DirectX 9/11対応ゲームで多発 | 32bit用DirectX DLLが誤って System32 に配置された | d3dx9_43.dll, d3dx11_43.dll, xinput1_3.dll | 破損DLLを削除後、公式DirectX End-User Runtimesを適用 |
| 特定のランチャー経由でのみ起動失敗 | ランチャーのオーバーレイDLLが互換性のない形式で注入された | gameoverlayrenderer.dll またはキャプチャソフトフック | ランチャーのオーバーレイを無効化、クライアント更新 |
| 「DLL一括修復ツール」実行後に被害拡大 | WinSxS整合性破壊とレジストリマッピング汚染 | 多数のコアシステムDLL | SFC / DISMスキャン修復を実施後、公式ランタイムを導入 |
Windowsシステムフォルダの命名規則の罠
PCゲーム初心者が陥りやすい最大の誤解がフォルダの命名規則です:
C:\Windows\System32:64bit版Windows環境では、64bitネイティブライブラリが格納されます。C:\Windows\SysWOW64:ここが32bit互換ライブラリ(Windows 32-bit on Windows 64-bit)の格納先です。
Web上の誤った情報に従い、32bitのDLLを System32 にコピーすると、64bitゲームがそれを読み込んだ瞬間にロードが破綻し、0xc000007b が発生します。
復旧作業の3ステップガイド
ステップ1:オープンソース診断ツール「Dependencies」で犯人DLLを特定
- GitHubからオープンソースツール Dependencies(
DependenciesGui.exe)を取得します。 - ゲームの起動用実行ファイル(
.exe)をツールに読み込ませます。 - モジュール一覧を展開し、赤色の警告マークがついているもの、または親プロセスが
x64であるにもかかわらずx86と判定されているDLLを特定します。
ステップ2:汚染されたDLLの手動除去
- ゲームのインストールフォルダ直下を確認し、手動で放り込んだ
d3dx*.dllやvcruntime*.dllがあれば削除します。 System32内に誤って配置された不整合DLLを削除します。
ステップ3:Microsoft公式インストーラーによる再構築
- DirectX End-User Runtimes (June 2010):公式配布パッケージを展開し、
dxsetup.exeを実行して正しい配置を自動復元させます。 - Visual C++ 再頒布可能パッケージ (2015-2022):必ず
vc_redist.x86.exeとvc_redist.x64.exeの両方をインストールしてください。 - PCを再起動してシステム環境をリフレッシュします。