Bad Image エラーは、Windows がアプリケーションの読み込み中に DLL または EXE を検出したものの、そのモジュールを有効で互換性のある Windows イメージとして扱えなかったことを示します。ダイアログには、ファイルが Windows で実行するように設計されていないか、エラーを含んでいると表示されることがよくあります。これは必ずしも DLL が欠落している問題ではありません。まずメッセージに表示されたファイルを確認してください。1つのアプリだけで発生する場合は所有元を修復し、複数のアプリで発生する場合は Windows ファイルを確認し、DLL やランタイムの診断先が不明な場合はガイド付きスキャンを使用します。このガイドでは、対象を絞った修復からシステムチェックまで、3つの修復方法を説明します。

Bad Imageエラーのダイアログ

Bad Imageエラーの症状

  • アプリまたはゲームの起動に失敗し、 Bad Image が表示される。
  • ダイアログに DLL または EXE が表示され、Windows で実行するように設計されていないか、エラーを含むと示される。
  • エラーには 0xc000007b が含まれることがあり、無効なイメージ形式を示す場合がある。
  • 同じエラーが1つのアプリケーションだけで発生することも、システムまたはコンポーネントの問題後に無関係な複数のプログラムで発生することもある。

Bad ImageとDLL欠落の違い

エラー より可能性が高い意味
DLL was not found 必要なファイルが見つからない。
Bad Image ファイルは存在するが、Windows が正しく読み込めない。
0xc000007b 無効なイメージ形式。アーキテクチャまたはモジュールの互換性が関係している可能性がある。
Entry Point Not Found API またはバージョンの互換性の問題である可能性が高い。

これらのメッセージは原因を共有することがありますが、文言によって最初に修復すべき対象は異なります。表示された DLL を無作為にダウンロードして置き換えないでください。

簡易診断チェックリスト

  • 1つのアプリだけが失敗し、表示された DLL がそのアプリのフォルダーにある場合: 方法1を使い、公式の提供元からアプリケーションを修復または再インストールします。
  • ダイアログに Microsoft Visual C++ ランタイムのファイルが表示される場合: 方法1を使い、そのファイルを提供する公式の Visual C++ Redistributable を修復または再インストールします。
  • ダイアログに Windows システム DLL が表示される、または複数のアプリが失敗する場合: 方法2で DISM と SFC を実行します。
  • ファイルがプラグイン、ドライバー、またはアドオンに属する場合: 最初にそのコンポーネントを修復または再インストールします。その後も DLL とランタイムの診断先が不明な場合は、方法3を使用します。

修復方法の比較

方法 最適なケース 効率 ユーザーの作業量
指定されたコンポーネントを修復する 1つのアプリ、ランタイム、プラグイン、またはドライバーを特定できる 所有元が明確な場合は高い 低~中
DISM と SFC Windows システム DLL、または複数の影響を受けたアプリ 広範なシステムチェック 中
Fionn DLL Fixer DLL、ランタイム、または依存関係の診断先が不明 ガイド付きのスキャンと修復 低

x86/x64の不一致はBad Imageエラーの原因になるか

はい。64ビットのプロセスは32ビット DLL を読み込めず、32ビットのプロセスは64ビット DLL を読み込めません。この不一致により Bad Image エラーまたは 0xc000007b が発生する可能性がありますが、このコードだけでアーキテクチャの不一致が証明されるわけではありません。破損、不適切なランタイムのバージョン、または互換性のないモジュールも原因になり得ます。DLL をフォルダー間でコピーするのではなく、アプリ開発元のインストーラーと対応する公式ランタイムパッケージを使用してください。

方法1:エラーで指定されたコンポーネントを修復する

使用するタイミング: 1つのアプリケーションだけが失敗する場合、または表示されたファイルがアプリ、Microsoft Visual C++ ランタイム、プラグイン、またはドライバーに明確に属する場合です。

手順

  1. 完全なエラーメッセージと、表示されたファイルパスまたはファイル名をコピーします。
  2. ファイルの所有元を特定します。アプリのインストールフォルダー、Microsoft Visual C++ ランタイム、Windows フォルダー、またはサードパーティ製プラグイン・ドライバーのいずれかです。
  3. アプリ固有の DLL である場合は、Windows の設定を開き、 アプリ を選択して、利用可能であればアプリの詳細オプションを開きます。
  4. 修復 を選択してからアプリを起動します。修復が利用できない、または失敗する場合は、開発元の公式提供元からアプリを再インストールします。
  5. Visual C++ ランタイム、プラグイン、またはドライバーの場合は、アプリケーションだけでなく、そのコンポーネントの公式パッケージを修復または再インストールします。

確認方法: 通常使用しているショートカットから同じアプリを起動します。Bad Image ダイアログが表示されなくなれば、対象コンポーネントの修復は成功です。同じアプリで同じローカルファイルが表示され続ける場合は、完全なメッセージをそのコンポーネントの開発元に提供してください。

インストール済みアプリの修復を表示するWindowsの設定

方法2:DISMとSFCでWindowsシステムファイルを修復する

使用するタイミング: 表示されたファイルが Windows システム DLL である場合、複数のプログラムで Bad Image エラーが表示される場合、または Windows の機能も不安定な場合です。

手順

  1. コマンド プロンプト を検索し、 管理者として実行 を選択します。
  2. 次のコマンドを実行し、完了するまで待ちます。
    DISM.exe /Online /Cleanup-image /Restorehealth DISM.exeのRestorehealthコマンドを実行するコマンドプロンプト
  3. DISM の完了後、次のコマンドを実行します。
    sfc /scannow
  4. SFC が100%に達するまで待ちます。
  5. Windows を再起動し、影響を受けたアプリケーションをテストします。

確認方法: 失敗していたアプリを再度開き、該当する場合は別の影響を受けたアプリも開きます。SFC が修復できないファイルを報告する、またはエラーが続く場合は、問題をエスカレーションする前に Microsoft の システム ファイル チェッカーの手順 に従ってください。

方法3: Fionn DLL Fixer でBad Imageエラーを診断・修復する

使用するタイミング: DLL、ランタイム、グラフィックス依存関係、またはバージョンの不一致が関係している可能性があり、手動の所有元確認で明確な修復対象を特定できなかった場合です。 推奨: Fionn DLL Fixer は、検出された DLL とシステムの問題をスキャンし、修復を実行して結果を再確認できます。

手順

  1. Fionn DLL Fixer を起動します。ソフトウェアは PC の DLL とシステムの問題を自動的にスキャンし、スキャン完了時に検出結果を表示します。 Fionn DLL Fixerを起動する
  2. スキャン完了後、 Repair をクリックして、検出されたすべての DLL とシステムの問題の自動修復を開始します。 スキャン完了後にRepairをクリックして自動修復を開始する
  3. 修復の進行中は待ちます。この間、すべての問題が修復されるまで、ボタンは Fixing に変わります。 修復の進行中に待機する
  4. 修復が完了したら、確認ダイアログで OK をクリックします。メッセージが表示された場合は、問題が解決したか確認する前にコンピューターを再起動します。 修復完了後に確認ダイアログでOKをクリックする
  5. 再起動後も問題が続く場合は、 Recheck をクリックして再度スキャンします。新しい問題が見つかった場合は、もう一度 Repair をクリックして修復します。 問題が続く場合にRecheckをクリックして再スキャンする

確認方法: メッセージが表示された場合は再起動してから、影響を受けたアプリケーションを起動します。元のダイアログが表示されずに起動できれば、確認可能な結果です。エラーが残る場合は、Recheck の結果と完全なエラーメッセージを保存し、アプリ開発元または Microsoft サポートに提供してください。

確認チェックリスト

  • 以前 Bad Image エラーが表示された正確なアプリまたはゲームを起動します。
  • ダイアログと、そこに表示されたモジュールが再び表示されないことを確認します。
  • 複数のアプリが失敗していた場合は、少なくとももう1つの影響を受けたアプリケーションをテストします。
  • 選択した修復で必要な場合は Windows を再起動してから、再度起動テストを行います。
  • エラーが続く場合は、サポートに連絡する前に完全なエラー文、エラーコード、表示されたファイル、ファイルパス、アプリのバージョンを記録します。

まとめ

Bad Image エラーは、Windows が読み込もうとしているファイルに応じて対処してください。1つのアプリが自身のフォルダー内のファイルを表示する場合は、そのアプリを修復または再インストールします。メッセージが Microsoft Visual C++ ランタイム、プラグイン、またはドライバーを示す場合は、その所有コンポーネントを修復します。Windows システム DLL が関係する場合、または複数のアプリが影響を受ける場合は、DISM と SFC を使用してください。依存関係の診断先が不明な場合は、 Fionn DLL Fixer がガイド付きのスキャン、修復、再確認の手段を提供します。修復後は必ず元のアプリを再度開いて確認し、再び失敗する場合は完全なダイアログとファイルの詳細を公式サポートに送ってください。

よくある質問

Bad Imageエラーとは何ですか?

アプリケーションに必要なモジュールを Windows が検出したものの、有効または互換性のある Windows イメージとして読み込めなかったことを意味します。ファイルの破損、非互換性、または不適切なインストールが原因である可能性があります。

0xc000007bは常にx86/x64の不一致を意味しますか?

いいえ。これは無効なイメージ形式を示すことがあり、アーキテクチャの不一致は考えられる原因の1つです。破損または互換性のないモジュールでも、同様の症状が発生することがあります。

エラーで指定されたDLLをダウンロードすべきですか?

いいえ。ファイルを提供しているアプリまたは公式コンポーネントを修復してください。単体の DLL はバージョンまたはアーキテクチャが誤っている可能性があります。

Visual C++ランタイムファイルにはどの修復方法を使うべきですか?

ランタイムを所有する公式の Microsoft Visual C++ Redistributable を修復または再インストールしてから、影響を受けたアプリをテストしてください。

DISMとSFCはいつ実行すべきですか?

Windows システム DLL が表示される場合、無関係な複数のアプリが失敗する場合、または Windows の機能が不安定な場合に使用します。DISM を先に実行し、その後で SFC を実行してください。