WindowsでDLLファイルを登録するには、管理者として起動したコマンド プロンプトで組み込みのRegsvr32ツールを実行し、DLLのアーキテクチャに一致するバージョンを使用します。これは、自己登録に対応した対象のCOM DLLにのみ適用されます。Regsvr32は、汎用的なDLL修復ツールではありません。Visual C++、DirectX、または通常のアプリケーションDLLが見つからないとWindowsが表示する場合は、影響を受けるソフトウェアを修復または再インストールしてください。このガイドでは、直接登録、以前登録したCOMコンポーネントの再登録、より広範なDLL問題に対する別の診断手順を説明します。
DLLを登録すべき場面
| 状況 | Regsvr32を使用すべきか |
|---|---|
| ソフトウェアベンダーがCOM DLLの登録を明示的に指示している | はい |
| DLLが自己登録対応として文書化されている | はい |
| DLLが見つからない | 通常はいいえ |
| Visual C++またはDirectXのDLLが不足している | いいえ |
| ファイルが通常のアプリケーション依存DLLである | 必ずしも対応しているとは限らない |
| DLLの用途や登録対応の有無が不明である | 先に出所と想定用途を確認する |
DLLを登録する前に、ソフトウェアベンダーまたはそのインストーラーからファイルを取得し、完全なパスを確認して、影響を受けるアプリを閉じてください。アプリケーションファイルの不足や置き換えに対してインストーラーが修復または再インストールを提供している場合は、その方法を使用してください。
方法の比較
| 方法 | 最適なケース | 効率 | ユーザーの作業量 |
|---|---|---|---|
| Regsvr32で登録する | 登録が必要な、既知の自己登録対応COM DLL | 高い | 中程度 |
| COM DLLを再登録する | 以前に登録され、古い登録情報が疑われるコンポーネント | 中程度 | 中程度 |
| Fionn DLL Fixerで診断する | DLLの不足、破損、不一致、またはシステムパス関連の症状 | 検出された問題による | 少ない |
方法1:Regsvr32でDLLを登録する
使用する場面:信頼できるベンダー文書が、そのファイルを自己登録対応のCOM DLLとして示し、登録を指示している場合にのみ使用してください。
- スタートを開き、コマンド プロンプトを検索して、管理者として実行を選択します。

- Windowsの種類だけでなく、DLLに一致する登録ツールを選びます。64ビットWindowsでは、64ビットDLLには
C:\Windows\System32\regsvr32.exeを、32ビットDLLにはC:\Windows\SysWOW64\regsvr32.exeを使用します。 - 例をDLLの完全なパスに置き換え、対応するコマンドを実行します。
C:\Windows\System32\regsvr32.exe "C:\Path\To\Example.dll"64ビットWindowsで32ビットDLLを登録する場合は、次を使用します。
C:\Windows\SysWOW64\regsvr32.exe "C:\Path\To\Example.dll" - 結果に
DllRegisterServer succeededと表示されることを確認し、影響を受けるアプリを再度開いて、コンポーネントを使用する機能をテストします。
方法2:以前登録したCOM DLLを再登録する
使用する場面:以前に登録されており、登録情報の誤りまたは古さが疑われる自己登録対応COMコンポーネントにのみ使用します。方法1が失敗した場合の標準的な次の手順ではありません。
- 管理者としてコマンド プロンプトを開き、DLLに一致する32ビット版または64ビット版のRegsvr32実行ファイルを選びます。
- 対応するRegsvr32コマンドに
/uを追加して、既知のコンポーネントの登録を解除します。regsvr32 /u "C:\Path\To\Example.dll"
- 同じDLLを、対応する実行ファイルで
/uスイッチなしで再度登録します。regsvr32 "C:\Path\To\Example.dll" - 影響を受けるアプリケーションを再起動し、以前に登録関連エラーが発生した操作を繰り返します。
確認:コンポーネントが正常に登録され、影響を受けた機能が以前の登録エラーなしで読み込まれるはずです。失敗した場合は、正確なメッセージを保存してください。
方法3:Fionn DLL FixerでDLLの問題を診断して修復する
使用する場面:この別の方法は、DLLの不足、破損、バージョン不一致、またはSystem32パス関連のDLL問題に適しています。ベンダーが指示するCOM登録をRegsvr32で行う代わりにはなりません。
- Fionn DLL Fixerを起動します。PCをスキャンしてDLLとシステムの問題を確認し、スキャン完了後に検出結果を表示します。

- スキャン完了後、修復をクリックして、検出されたすべてのDLLおよびシステム問題の修復を開始します。

- 修復処理が完了するまで待ちます。検出された問題が修復されるまで、ボタンは修復中に変わります。

- 修復が完了したら、確認ダイアログでOKをクリックします。再テスト前に求められた場合はコンピューターを再起動します。

- 再起動後も問題が続く場合は、再確認をクリックしてもう一度スキャンします。新たな問題が表示された場合は、もう一度修復をクリックします。

確認:再確認後、影響を受けるアプリまたはゲームを開き、元のDLL不足または読み込み時の症状が変化したかを確認します。
よくあるRegsvr32エラーとその意味
| Regsvr32メッセージ | 意味と次の手順 |
|---|---|
DllRegisterServer succeeded | 登録は成功しました。影響を受ける機能をテストしてください。 |
DllRegisterServer was not found | DLLが自己登録に対応していない可能性があります。ベンダーの手順を確認してください。 |
The module failed to load | パス、依存モジュール、32ビットまたは64ビットの一致を確認してください。 |
The specified module could not be found | 対象DLL自体は存在していても、その依存関係のいずれかを読み込めない可能性があります。 |
0x80070005 | これは一般にアクセス拒否の問題を示します。管理者としてコマンド プロンプトを実行し、コンポーネントを使用する権限を確認してください。 |
コマンドオプションとMicrosoftの用語については、MicrosoftのRegsvr32リファレンスを確認してください。エントリポイントがない場合に、無関係なDLLを繰り返し試さないでください。
- アーキテクチャの不一致:Regsvr32をDLLのアーキテクチャに一致させてください。
- 引用符で囲まれていないパス:空白を含むパスは引用符で囲んでください。
- 管理者権限の不足:システム全体の登録では、管理者としてコマンド プロンプトを起動してください。
- 不足ファイルの修復手段として登録を使う:代わりに、提供元のアプリケーションを再インストールまたは修復してください。
まとめ
まず、そのDLLがベンダーにより指定された自己登録対応COMコンポーネントであることを確認してください。次に、DLLのアーキテクチャに一致するRegsvr32実行ファイルを使い、成功メッセージを確認してから影響を受けるアプリケーションをテストします。再登録は、すでに登録されており、登録解除に対応していることがわかっているコンポーネントにのみ行ってください。DLLの不足、破損、バージョン不一致、または依存関係関連の症状には、Fionn DLL Fixerが別のスキャン、修復、再確認の手順を提供します。エラーが解消しない場合は、完全なメッセージとソフトウェアベンダーの修復手順を使用して、次の対応を特定してください。
よくある質問
すべてのDLLファイルを登録できますか?
いいえ。Regsvr32は、必要な登録エントリポイントを公開する自己登録対応COM DLL向けです。多くの通常のDLLは該当しません。
64ビットWindowsでは32ビット版と64ビット版のどちらのRegsvr32を使うべきですか?
DLLに一致するバージョンを選んでください。64ビットDLLにはSystem32を、32ビットDLLにはSysWOW64を使用します。
DLLが存在するのに、Regsvr32が指定されたモジュールが見つからないと表示するのはなぜですか?
このメッセージは、対象DLLだけでなく、そのDLLが必要とする依存関係を指している場合があります。ファイルの出所、アーキテクチャ、アプリケーションの修復オプションを確認してください。
不足しているVisual C++またはDirectX DLLを修復するためにDLLを登録すべきですか?
いいえ。このようなエラーには通常、COM登録ではなく、影響を受けるアプリケーションのインストーラー、修復オプション、またはサポート対象ランタイムのインストールが必要です。
DLLを登録した後にWindowsを再起動する必要がありますか?
通常は影響を受けるアプリを再起動すれば十分です。ベンダーから指示された場合、またはプロセスが古いコンポーネント状態を保持している可能性がある場合は、Windowsを再起動してください。
Emily Carter