DLL x64とx86の選び方 で問題が起きた場合は、Windows自体だけでなくプロセスのビット数を基準にしてください。64ビットプロセスにはx64 DLL、32ビットプロセスにはx86 DLLが必要です。64ビット版Windowsは両方の種類のアプリを実行できますが、プロセスは異なるビット数のDLLを読み込めません。まずプログラムのアーキテクチャを確認し、1つのプログラムだけの問題なら公式インストーラー、システム全体の問題ならDISMとSFC、原因が不明ならFionn DLL Fixerによる診断を選択してください。以下では4つの方法を紹介します。
方法の簡単な比較
| 方法 | 最適なケース | 効果 | ユーザーの負担 |
|---|---|---|---|
| アーキテクチャの確認 | x86またはx64のDLLを選ぶ必要がある | 診断に高い効果 | 低い |
| DISMとSFC | 複数のプログラムでシステムDLLに関するエラーが出る | システムコンポーネントに高い効果 | 中程度 |
| 公式の再インストール | 起動しないのが1つのアプリだけ | 高い | 中程度 |
| Fionn DLL Fixer | 原因が不明で依存関係を確認したい | 検出された問題に応じて異なる | 低い |
方法1:アプリケーションとDLLのビット数を確認する
使用する場面: コンポーネントをインストールまたは置き換える前、特にエラーにx86、x64、互換性のないモジュール、またはBad Imageが記載されている場合です。
- Ctrl + Shift + Esc を押してタスク マネージャーを開きます。
- 「詳細」タブに移動し、対象プログラムのプロセスを見つけます。
- 列見出しを右クリックし、「列の選択」を選択して、ご利用のWindowsバージョンで使用できる場合は「プラットフォーム」または「アーキテクチャ」を有効にします。
- 表示された値を確認します。32ビットプロセスにはx86 DLL、64ビットプロセスにはx64 DLLを選択します。
- 「設定」→「システム」→「詳細情報」を開き、「システムの種類」を追加の互換性確認として確認します。

結果の確認: 選んだDLLのビット数がプロセスのビット数と一致していることを確認します。Windowsの種類だけでは、この確認の代わりにはなりません。
DLL x86とx64の不一致はどのように見えるか
アーキテクチャの不一致は、起動直後に現れることがよくあります。アプリがウィンドウを開かずに終了する、互換性のないDLLまたはBad Imageのメッセージが表示される、あるいはエラーコード0xc000007b
が返される場合があります。これらの兆候だけで原因を断定することはできません。このコードは破損した依存関係でも表示されることがあります。まずエラー本文とファイル名を記録し、プロセスのビット数を確認してから、公式ソースからコンポーネントを復元してください。
System32とSysWOW64:x64とx86のDLLの場所
64ビット版Windowsでは、フォルダー名は直感に反します。C:\Windows\System32
には主に64ビットのシステムコンポーネントがあり、C:\Windows\SysWOW64
は32ビットのWOW64環境に対応しています。32ビットプロセスではWOW64がファイルシステムのリダイレクトを適用するため、アプリはユーザーが予想するものとは異なる方法でパスにアクセスすることがあります。
方法2:Windowsのシステムコンポーネントを修復する
使用する場面: Windowsの障害または更新後にエラーが発生し始めた場合、または複数のプログラムで似たメッセージが表示される場合です。
- スタートメニューから「ターミナル(管理者)」を開きます。
- 次のコマンドを実行します。
DISM /Online /Cleanup-Image /RestoreHealth
- 完了後に、次を実行します。
sfc /scannow - コンピューターを再起動します。
- 問題のあるアプリを起動し、元のエラーを確認します。
Microsoftのシステムファイル修復手順 によると、DISMはWindowsイメージを修復し、SFCは保護されたシステムファイルを確認します。この方法は、個別のプログラムに付属するDLLの再インストールの代わりにはなりません。
方法3:公式ソースからコンポーネントを再インストールする
使用する場面: 問題が1つのゲームまたはプログラムでのみ発生し、ほかのアプリは正常に動作する場合です。
- 問題のあるアプリを閉じます。
- 開発元の公式ダウンロードページまたはサポートページを開きます。
- プログラムのインストーラー、または開発元が指定したコンポーネントをダウンロードします。
- インストーラーでアーキテクチャを選べる場合は、32ビットプロセスにはx86、64ビットプロセスにはx64を選択します。
- インストールを完了し、アプリを再度起動します。

結果の確認: 元のメッセージなしでアプリが開くことを確認します。公式インストーラーは関連ファイルとバージョンを適切な場所に配置します。未知のソースから入手した個別のDLLは使用しないでください。
方法4:Fionn DLL Fixer で問題を診断して修復する
使用する場面: 原因が不明で、DLL、システムコンポーネント、起動時の依存関係を確認する必要がある場合です。Fionn DLL Fixerはスキャン、修復、再確認を行います。欠落、破損、バージョン不一致、System32に関連するDLLの問題を検出できる場合があります。
- Fionn DLL Fixerを起動します。プログラムがPCのDLLおよびシステムの問題を自動的にスキャンし、完了後に結果を表示します。

- スキャンが完了したら、「Repair」をクリックして、検出されたすべてのDLLおよびシステムの問題の修復を自動的に開始します。

- 修復が完了するまで待ちます。処理中は、すべての問題が解決されるまでボタン表示が「Fixing」に変わります。

- 完了後、確認ダイアログで「Ok」をクリックします。表示された場合は、結果を確認する前にコンピューターを再起動します。

- 再起動後も問題が続く場合は、「Recheck」をクリックして再スキャンします。新たな問題が検出された場合は、もう一度「Repair」をクリックします。

結果の確認: 元のプログラムをもう一度開きます。エラーが続く場合は、開発元のサポートに連絡するため、エラー本文、DLL名、プロセスのビット数を保存してください。
x86とx64のエラーを防ぐ方法
- DLLはWindowsのビット数だけでなく、プログラムのプロセスに合わせます。
*32という表示がないことだけを、アーキテクチャを判断する唯一の方法にしないでください。- 1つのプログラムだけで障害が起きる場合は、その公式インストーラーから始めます。
- 複数のプログラムでエラーが起きる場合は、DISMとSFCでシステムコンポーネントを確認します。
まとめ
まずプロセスのビット数を確認してください。これにより、x86 DLLとx64 DLLの選択が決まります。1つのプログラムだけで障害が起きる場合は公式サイトからコンポーネントを再インストールし、複数のアプリに影響する場合はDISMとSFCでWindowsのシステムファイルを修復します。System32には主に64ビットのコンポーネントがあり、SysWOW64は32ビット環境に対応していますが、これらのフォルダー間でファイルを手動コピーしないでください。エラーの原因が不明な場合は、Fionn DLL Fixer でスキャン、修復、再確認を実行できます。以前のエラーなしでプログラムが起動すれば、問題は解決しています。
よくある質問
64ビット版Windowsでx86 DLLを使用できますか?
はい、DLLを読み込むアプリが32ビットの場合は使用できます。64ビットプロセスはx86 DLLを読み込めません。
x64 DLLが32ビットプログラムで動作しないのはなぜですか?
32ビットプロセスは64ビットDLLを読み込めません。プログラムの開発元が提供するx86版をインストールしてください。
System32にx64 DLLがあるのはなぜですか?
これはWindowsの歴史的な規則です。64ビットシステムでは、System32は主に64ビットのシステムコンポーネント用であり、SysWOW64は32ビットのWOW64環境用です。
エラー0xc000007bは、DLLのビット数が必ず違うことを意味しますか?
いいえ。アーキテクチャの不一致は考えられる原因の1つですが、破損または欠落した依存関係によってもこのコードが表示されることがあります。ビット数を確認し、公式コンポーネントを復元してください。
DISMとSFCはいつ使用すべきですか?
Windowsのシステムファイルが破損している可能性がある場合、または複数のプログラムでエラーが発生する場合に使用してください。1つのプログラムに付属するDLLについては、先に公式インストーラーを使用してください。
Emily Carter